The journal of instruction-level parallelism · 2000 · 20 citations · 16 references
ComputingComputer EngineeringComputer ScienceCompilersComputer ArchitectureDesign OptimizationCompiler ConstructionControl-flow AnalysisData-flow AnalysisInstruction SelectionPerformance Bottleneck AnalysisRegister AllocationCompile-time OptimizationCompiler SupportLocal Register AllocationLoop OptimizationLoop Structure OptimizationMicroarchitectural OptimizationProfile OptimizationProfile-guided Optimization
This paper describes and evaluates the profile-based optimizations in the Compaq C compiler tool chain for Alpha. The optimizations include superblock formation, inlining, commando loop optimization, register allocation, code layout, and switch statement optimization. The optimizations either are extensions of classical optimizations or are restructuring transformations that enable classical optimizations. Profile-based optimization is highly effective, achieving a 17% speedup over aggressive classical optimization on the SPECInt95 benchmarks. Inlining contributes the most performance and code layout, superblock formation, and loop restructuring are also important.
16
Jennifer M. Anderson, Lance M. Berc, Jeffrey A. Dean et al. · ACM Transactions on Computer Systems · 1997 · 483 citations · Full text
Profile guided code positioning
Karl Pettis, Robert C. Hansen, Jack W. Davidson · ACM SIGPLAN Notices · 2004 · 393 citations
The multiflow trace scheduling compiler
P. Geoffrey Lowney, Stefan M. Freudenberger, Thomas J. Karzes et al. · The Journal of Supercomputing · 1993 · 379 citations