IEEE Transactions on Computers · 1995 · 14 citations · 16 references
ComputingComputer EngineeringComputer ScienceAlgorithmsCompilersComputer ArchitectureCode GenerationCompiler ConstructionControl-flow AnalysisData-flow AnalysisRegister AllocationSpeculative ExecutionCompiler DesignCompiler SupportConstraintsDependence AnalysisInterferenceSeparate CompilationSeparate Compilation Support
This paper describes a compiler-based approach to provide multiple instruction rollback capability for general purpose processor registers. The objective is achieved by having the compiler remove all forms of N-instruction antidependencies. Pseudoregister antidependencies are removed by loop protection, node splitting, and loop expansion techniques; machine register antidependencies are prevented by introducing antidependency constraints in the interference graph used by the register allocator. To support separate compilation, inter-procedural antidependency constraints are added to the code generator to guarantee the termination of machine register antidependencies across procedure boundaries. The algorithms have been implemented in the IMPACT C compiler. Experiments illustrating the effectiveness of this approach are described.< <ETX xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">></ETX>
16
Register allocation & spilling via graph coloring
Gregory J. Chaitin · ACM SIGPLAN Notices · 1982 · 767 citations · Full text
Register allocation via coloring
Gregory J. Chaitin, Marc Auslander, Ashok K. Chandra et al. · Computer Languages · 1981 · 731 citations
Register allocation & spilling via graph coloring
Gregory J. Chaitin · 1982 · 668 citations