Abstract
The Static Single Assignment (SSA) form has been an eminent contribution towards analyzing programs for compiler optimizations. It has been affable to the design of simpler algorithms for existing optimizations, and has facilitated the development of new ones. However, speculative optimizations — optimizations targeted towards speeding-up the “common cases” of a program — have not been fortunate enough to savor an SSA-like intermediate form. We extend the SSA form for speculative analyses and optimizations by allowing only hot reaching definitions — definitions along frequent acyclic paths in the program profile — to reach its respective uses; we call this representation the Hot Path SSA form. We propose an algorithm for constructing such a form, and demonstrate its effectiveness by designing the analysis phase of a novel optimization — Speculative Sparse Conditional Constant Propagation: an almost obvious extension of Wegman and Zadeck’s Sparse Conditional Constant Propagation algorithm. Our experiments on some SPEC2000 programs proves the potency of such an optimization.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Ammons, G., Larus, J.R.: Improving data-flow analysis with path profiles. SIGPLAN Not. 39(4), 568–582 (2004)
Ball, T., Larus, J.R.: Efficient path profiling. In: International Symposium on Microarchitecture (MICRO), pp. 46–57 (1996)
Briggs, P., Cooper, K.D., Taylor Simpson, L.: Value Numbering. Software: Practice and Experience (1997)
Chen, P.-S., Hwang, Y.-S., Ju, R.D.-C., Lee, J.K.: Interprocedural Probabilistic Pointer Analysis. IEEE Transactions on Parallel and Distributed Systems 15(10), 893–907 (2004)
Chow, F., Chan, S., Kennedy, R., Liu, S.-M., Lo, R., Tu, P.: A new algorithm for partial redundancy elimination based on SSA form. In: Programming Language Design and Implementation (PLDI), pp. 273–286 (1997)
Chow, F.C., Chan, S., Liu, S.-M., Lo, R., Streich, M.: Effective Representation of Aliases and Indirect Memory Operations in SSA Form. In: Gyimóthy, T. (ed.) CC 1996. LNCS, vol. 1060, pp. 253–267. Springer, Heidelberg (1996)
CIL - Infrastructure for C Program Analysis and Transformation, http://hal.cs.berkeley.edu/cil/
Cytron, R., Ferrante, J., Rosen, B.K., Wegman, M.N., Kenneth Zadeck, F.: Efficiently computing static single assignment form and the control dependence graph. ACM Trans. Program. Lang. Syst. 13(4), 451–490 (1991)
Da Silva, J., Gregory Steffan, J.: A probabilistic pointer analysis for speculative optimizations. SIGARCH Comput. Archit. News 34(5), 416–425 (2006)
Das, M., Lerner, S., Seigle, M.: ESP: path-sensitive program verification in polynomial time. In: Programming Language Design and Implementation (PLDI), pp. 57–68 (2002)
Gupta, R., Berson, D.A., Fang, J.Z.: Path Profile Guided Partial Dead Code Elimination Using Predication. In: Parallel Architectures and Compilation Techniques (PACT), p. 102. IEEE Computer Society, Washington, DC (1997)
Gupta, R., Berson, D.A., Fang, J.Z.: Path Profile Guided Partial Redundancy Elimination Using Speculation. In: International Conference on Computer Languages (ICCL), p. 230 (1998)
Knobe, K., Sarkar, V.: Array SSA form and its use in parallelization. In: Principles of Programming Languages (POPL), pp. 107–120 (1998)
Lin, J., Chen, T., Hsu, W.-C., Yew, P.-C., Ju, R.D.-C., Ngai, T.-F., Chan, S.: A compiler framework for speculative analysis and optimizations. In: Programming Language Design and Implementation (PLDI), pp. 289–299 (2003)
Horspool, R.N., Pereira, D.J., Scholz, B.: Fast Profile-Based Partial Redundancy Elimination. In: Lightfoot, D.E., Szyperski, C. (eds.) JMLC 2006. LNCS, vol. 4228, pp. 362–376. Springer, Heidelberg (2006)
Ramalingam, G.: Data flow frequency analysis. In: Programming Language Design and Implementation (PLDI), pp. 267–277 (1996)
Roy, S., Srikant, Y.N.: Profiling k-Iteration Paths: A Generalization of the Ball-Larus Profiling Algorithm. In: International Symposium on Code Generation and Optimization (CGO), pp. 70–80. IEEE Computer Society, Washington, DC (2009)
Scale: A Scalable Compiler for Analytical Experiments, http://www-ali.cs.umass.edu/Scale/
Stoutchinin, A., de Ferriere, F.: Efficient static single assignment form for predication. In: International Symposium on Microarchitecture (MICRO), pp. 172–181 (2001)
Tallam, S., Zhang, X., Gupta, R.: Extending path profiling across loop backedges and procedure boundaries. In: International Symposium on Code Generation and Optimization (CGO), pp. 251–264 (2004)
Wegman, M.N., Kenneth Zadeck, F.: Constant propagation with conditional branches. ACM Trans. Program. Lang. Syst. 13(2), 181–210 (1991)
Xue, J., Cai, Q.: A lifetime optimal algorithm for speculative PRE. ACM Trans. Archit. Code Optim. 3(2), 115–155 (2006)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Roy, S., Srikant, Y.N. (2010). The Hot Path SSA Form: Extending the Static Single Assignment Form for Speculative Optimizations. In: Gupta, R. (eds) Compiler Construction. CC 2010. Lecture Notes in Computer Science, vol 6011. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-11970-5_17
Download citation
DOI: https://doi.org/10.1007/978-3-642-11970-5_17
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-11969-9
Online ISBN: 978-3-642-11970-5
eBook Packages: Computer ScienceComputer Science (R0)