article

Optimizing for space and time usage with speculative partial redundancy elimination

Abstract

Speculative partial redundancy elimination (SPRE) uses execution profiles to improve the expected performance of programs. We show how the problem of placing expressions to achieve the optimal expected performance can be mapped to a particular kind of network flow problem and hence solved by well known techniques. Our solution is sufficiently efficient to be used in practice. Furthermore, the objective function may be chosen so that reduction in space requirements is the primary goal and execution time is secondary. One surprising result that an explosion in size may occur if speed is the sole goal, and consideration of space usage is therefore important.

References

  1. R. Bodik. Path-Sensitive Value-Flow Optimizations of Programs. Ph.D. thesis, University of Pittsburgh, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. R. Bodik, R. Gupta, and M. L. Soffa. Complete removal of redundant computations. Proceedings of ACM Conference on Programming Language Design and Implementation, vol. 33, 5, pages 1--14, New York, June 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Q. Cai and J. Xue. Optimal and efficient speculation-based partial redundancy elimination. Proceedings of the 1st IEEE/ACM International Symposium on Code Generation and Optimization, pages 91--102, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. L. Ford and D. Fulkerson. Flows in Networks. Princeton University Press, 1962.Google ScholarGoogle Scholar
  5. A. Goldberg and R. Tarjan. A new approach to the maximum flow problem. Journal of the ACM, vol. 35, 4, pages 921--940, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. R. Gupta, D. A. Berson, and J. Z. Fang. Path profile guided partial redundancy elimination using speculation. Proceedings of the 1998 International Conference on Computer Languages, pages 230--239, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. R. Gupta and R. Bodik. Register pressure sensitive redundancy elimination. Proceedings of International Conference on Compiler Construction (CC99), LNCS, vol. 1175, pages 107--121, Springer-Verlag, March 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. M. Hailperin. Cost-optimal code motion. ACM Transactions on Programming Languages and Systems, vol. 20, 6, pages 1297--1322, Nov. 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. R. N. Horspool and H.C. Ho. Partial redundancy elimination driven by a cost-benefit analysis. Proceedings of 8th Israeli Conference on Computer Systems and Software Engineering, pages 111--118, June 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. V. King, S. Rao, and R. Tarjan. A faster deterministic maximum flow algorithm. Journal of Algorithms, vol. 17, 3, pages 447--474, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. J. Knoop and E. Mehofer. Distribution assignment placement: effective optimization of redistribution costs. IEEE Transactions on Parallel and Distributed Systems, vol. 13, 6, pages 628--647, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. J. Knoop, O. Rüthing, and B. Steffen. Optimal code motion: theory and practice. ACM Transactions on Programming Languages and Systems, vol. 16, 4, pages 1117--1155, July 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. E. Morel and C. Renvoise. Global optimization by suppression of partial redundancies. Communications of the ACM, vol. 22, 2, pages 96--103, February 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. O. Rüthing, J. Knoop, and B. Steffen. Sparse code motion. Proceedings of 27th ACM Symposium on Principles of Programming Languages, pages 170--183, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. B. Steffen. Property-oriented expansion. Proceedings of the 3rd Static Analysis Symposium (SAS'96), LNCS, vol. 1145, pages 22--41, Springer-Verlag, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. H. Stone. Multiprocessor scheduling with the aid of network flow algorithms. IEEE Transactions on Software Engineering, vol. SE-3, 1, pages 85--93, January 1977.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Optimizing for space and time usage with speculative partial redundancy elimination

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!