1992 · 260 citations · 24 references
EngineeringCompiler TechnologyComputer ArchitectureComputational ComplexityBit-vector AlgorithmSoftware AnalysisSystems EngineeringRobot LearningKinematicsParallel ComputingData FlowLazy Code MotionCompiler SupportCode GenerationMotion SynthesisComputer EngineeringComputer ScienceProgram OptimizationCode RepresentationEconomical PlacementOptimizing CompilerFlow GraphsProgram AnalysisFormal MethodsParallel Programming
We present a bit-vector algorithm for the optimal and economical placement of computations within flow graphs, which is as efficient as standard uni-directional analyses. The point of our algorithm is the decomposition of the bi-directional structure of the known placement algorithms into a sequence of a backward and a forward analysis, which directly implies the efficiency result. Moreover, the new compositional structure opens the algorithm for modification: two further uni-directional analysis components exclude any unnecessary code motion. This laziness of our algorithm minimizes the register pressure, which has drastic effects on the run-time behaviour of the optimized programs in practice, where an economical use of registers is essential.
24
Monotone data flow analysis frameworks
John B. Kam, Jeffrey D. Ullman · Acta Informatica · 1977 · 376 citations
Applications of Path Compression on Balanced Trees
Robert E. Tarjan · Journal of the ACM · 1979 · 298 citations · Full text