Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Optimal code motion: theory and practice
ACM Transactions on Programming Languages and Systems (TOPLAS)
Practical adaption of the global optimization algorithm of Morel and Renvoise
ACM Transactions on Programming Languages and Systems (TOPLAS)
Advanced compiler design and implementation
Advanced compiler design and implementation
Global optimization by suppression of partial redundancies
Communications of the ACM
Generation of optimal code for expressions via factorization
Communications of the ACM
Partial redundancy elimination is not bidirectional
ACM SIGPLAN Notices
Optimal and efficient speculation-based partial redundancy elimination
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Global common subexpression elimination
Proceedings of a symposium on Compiler optimization
Partial Redundancy Elimination Driven by a Cost-Benefit Analysis
ICCSSE '97 Proceedings of the 8th Israeli Conference on Computer-Based Systems and Software Engineering
Optimizing for space and time usage with speculative partial redundancy elimination
Proceedings of the 2004 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
A lifetime optimal algorithm for speculative PRE
ACM Transactions on Architecture and Code Optimization (TACO)
Multiprocessor Scheduling with the Aid of Network Flow Algorithms
IEEE Transactions on Software Engineering
Local redundant polymorphism query elimination
Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java
An SSA-based algorithm for optimal speculative code motion under an execution profile
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
The hot path SSA form: extending the static single assignment form for speculative optimizations
CC'10/ETAPS'10 Proceedings of the 19th joint European conference on Theory and Practice of Software, international conference on Compiler Construction
Hi-index | 0.00 |
Partial Redundancy Elimination (PRE) is a standard program optimization which removes redundant computations via Code Motion. It subsumes and generalizes the optimizations of Global Common Subexpression Elimination (GCSE) and Loop Invariant Code Motion (LICM). Recent work has generalized PRE to become Speculative PRE (SPRE), which uses estimates of execution frequencies to find the optimal places in a program to perform computations. However, the analysis performed by the compiler is computationally intensive and hence impractical for just-in-time (JIT) compilers. This paper introduces a novel approach which abandons a guarantee of optimality in favour of simplicity and speed of analysis. This new approach, called Isothermal SPRE, achieves results which are close to optimal in practice, yet its analysis time is at least as good as current compiler techniques for code motion. It is a technique suitable for use in JIT compilers.