ACM SIGPLAN Notices · 1997 · 17 citations · 10 references
EngineeringBetter Inline CandidatesCompiler TechnologyComputer ArchitectureSoftware EngineeringSoftware AnalysisPredictable Branch BehaviorCompilersParallel ComputingInstruction-level ParallelismDynamic CompilationCompiler SupportComputer EngineeringComputer ScienceProgram AnalysisSoftware TestingProfile InformationParallel ProgrammingPerformance PortabilitySystem Software
Existing research understates the benefits that can be obtained from inlining and cloning, especially when guided by profile information. Our implementation of inlining and cloning yields excellent results on average and very rarely lowers performance. We believe our good results can be explained by a number of factors: inlining at the intermediate-code level removes most technical restrictions on what can be inlined; the ability to inline across files and incorporate profile information enables us to choose better inline candidates; a high-quality back end can exploit the scheduling and register allocation opportunities presented by larger subroutines; an aggressive processor architecture benefits from more predictable branch behavior; and a large instruction cache mitigates the impact of code expansion. We describe the often dramatic impact of our inlining and cloning on performance: for example, the implementations of our inlining and cloning algorithms in the HP-UX 10.20 compilers boost SPECint95 performance on a PA8000-based workstation by a factor of 1.32.
10
Profile guided code positioning
Karl Pettis, Robert C. Hansen · 1990 · 288 citations · Full text
Engineering, Instruction Memory Hierarchy, Compiler Technology +22
Inline function expansion for compiling C programs
Pohua P. Chang, Wen‐mei Hwu · 1989 · 118 citations · Full text
A methodology for procedure cloning
Keith D. Cooper, Mary Hall, Ken Kennedy · Computer Languages · 1993 · 118 citations