Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Data flow analysis for `intractable' system software
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
Interprocedural constant propagation
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
Detecting equality of variables in programs
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Constant propagation with conditional branches
ACM Transactions on Programming Languages and Systems (TOPLAS)
Finite constants: characterizations of a new decidable set of constants
MFCS '89 Selected papers of the symposium on Mathematical foundations of computer science
Efficiently computing static single assignment form and the control dependence graph
ACM Transactions on Programming Languages and Systems (TOPLAS)
Interprocedural constant propagation: a study of jump function implementation
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Interprocedural constant propagation: an empirical study
ACM Letters on Programming Languages and Systems (LOPLAS)
Combining analyses, combining optimizations
ACM Transactions on Programming Languages and Systems (TOPLAS)
Precise interprocedural dataflow analysis with applications to constant propagation
TAPSOFT '95 Selected papers from the 6th international joint conference on Theory and practice of software development
A practical framework for demand-driven interprocedural data flow analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Advanced compiler design and implementation
Advanced compiler design and implementation
A constant propagation algorithm for explicitly parallel programs
International Journal of Parallel Programming - Special issue on languages and compilers for parallel computing. Part I
Constant propagation with conditional branches
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Global Data Flow Analysis and Iterative Algorithms
Journal of the ACM (JACM)
A Fast and Usually Linear Algorithm for Global Flow Analysis
Journal of the ACM (JACM)
A unified approach to global program optimization
POPL '73 Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Symbolic evaluation and the global value graph
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A program form based on data dependency in predicate regions
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Computers and Intractability: A Guide to the Theory of NP-Completeness
Computers and Intractability: A Guide to the Theory of NP-Completeness
Euro-Par '98 Proceedings of the 4th International Euro-Par Conference on Parallel Processing
Detecting Equalities of Variables: Combining Efficiency with Precision
SAS '99 Proceedings of the 6th International Symposium on Static Analysis
Programming languages and their compilers: Preliminary notes
Programming languages and their compilers: Preliminary notes
Compiler Analysis of the Value Ranges for Variables
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
We present a new algorithm for constant propagation (CP), which works on the value graph of a program. This algorithm combines the (1) efficiency of the sparse CP-algorithms of Reif and Lewis, Ferrante and Ottenstein, and Weg man and Zadeck with the (2) conceptual simplicity of their classic conventional counterparts of Kildall, and Kam and Ullman, while (3) outperformingt hem in power. It detects a proper superset of the simple constants detected by the classical CP-algorithms, while avoiding the exponential worstcase behaviour of the CP-algorithm for finite constants of Steffen and Knoop allowing its optimality for acyclic control flow. The class detected is a well-balanced compromise between power and performance. In fact, we show that CP is co-NP-hard for acyclic control flow making the existence of efficient optimal algorithms for acyclic control flow most unlikely. Nonetheless, the new algorithm is open for extensions, e.g. towards conditional constants in the fashion of in order to capture to a certain extent the determinism of conditional branching.