1995 · 64 citations · 17 references
ComputingComputer EngineeringComputer ScienceAlgorithmsCompilersProgramming LanguagesAlgorithm AnalysisCompiler ConstructionControl-flow AnalysisData-flow AnalysisTiming AnalysisCompiler SupportLoop HandlingLoop OptimizationLoop Structure OptimizationOptimization AlgorithmsPartial Redundancy EliminationPerformance OverheadRedundancy Elimination
This paper presents a compiler optimization algorithm to reduce the run time overhead of array subscript range checks in programs without compromising safety. The algorithm is based on partial redundancy elimination and it incorporates previously developed algorithms for range check optimization. We implemented the algorithm in our research compiler, Nascent, and conducted experiments on a suite of 10 benchmark programs to obtain four results: (1) the execution overhead of naive range checking is high enough to merit optimization, (2) there are substantial differences between various optimizations, (3) loop-based optimizations that hoist checks out of loops are effective in eliminating about 98% of the range checks, and (4) more sophisticated analysis and optimization algorithms produce very marginal benefits.
17
Patrick Cousot, Radhia Cousot · 1977 · 6.2K citations
Automatic discovery of linear restraints among variables of a program
Patrick Cousot, Nicolas Halbwachs · 1978 · 1.6K citations
Global optimization by suppression of partial redundancies
E. H. Morel, C. Renvoise · Communications of the ACM · 1979 · 377 citations · Full text
Jens Knoop, Oliver Rüthing, Bernhard Steffen · 1992 · 261 citations · Full text