Proceedings Article10.1145/258915.258928
Aggressive inlining
Andrew E. Ayers,Richard Schooler,Robert Gottlieb +2 more
- 01 May 1997
pp 134-145
110
TL;DR: The often dramatic impact of the 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.
read more
Abstract: 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.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
•Book
Engineering a Compiler
Linda Torczon,Keith D. Cooper +1 more
- 10 Nov 2003
TL;DR: This work focuses on the back end of the compiler - reflecting the focus of research and development over the last decade; uses the well-developed theory from scanning and parsing to introduce concepts that play a critical role in optimization and code generation.
445
Eliminating stack overflow by abstract interpretation
John Regehr,Alastair Reid,Kirk Webb +2 more
- 01 Jan 2003
TL;DR: A method for statically guaranteeing stack safety of interrupt-driven embedded software using an approach based on context-sensitive dataflow analysis of object code and two novel ways to reduce stack memory requirements of embedded software are developed.
431
The New C Standard (Excerpted material) An Economic and Cultural Commentary
Derek M. Jones
- 01 Jan 2008
TL;DR: Form of Control Expression % Abstract Form of control Expression % others 32.4 Selection statements 1740 selection-statements Fu nc tio n de fin iti on s 1 10 100 1,000 10,000 0 25 50 75 100 × × if • • else switch × × ××××–×–––× × ×–– ×× ×–××
389
Mondrian memory protection
Emmett Witchel,Josh Cates,Krste Asanovic +2 more
- 01 Oct 2002
TL;DR: This work extends MMP to support segment translation which allows a memory segment to appear at another location in the address space, and uses this translation to implement zero-copy networking underneath the standard read system call interface.
A Survey of Adaptive Optimization in Virtual Machines
Matthew Arnold,Stephen J. Fink,David Grove,Michael Hind,Peter F. Sweeney +4 more
- 27 Jun 2005
TL;DR: This paper surveys the evolution and current state of adaptive optimization technology in virtual machines and concludes that adaptive optimization has begun to mature as a widespread production-level technology.
References
Profile guided code positioning
Karl William Pettis,Robert Craig Hansen +1 more
- 01 Jun 1990
TL;DR: This paper presents the results of the investigation of code positioning techniques using execution profile data as input into the compilation process to reduce the overhead of the instruction memory hierarchy.
Profile-guided automatic inline expansion for C programs
TL;DR: Critical implementation issues that must be addressed to develop a fully automatic inliner are described, including integration into a compiler, program representation, hazard prevention, expansion sequence control, and program modification.
An analysis of inline substitution for a structured programming language
TL;DR: Preliminary results for the CLU structured programming language indicate that, in programs with a low degree of recursion, over 90 percent of all procedure calls can be eliminated, with little increase in the size of compiled code and a small savings in execution time.
A methodology for procedure cloning
TL;DR: In this article, a three-phase algorithm for deciding when to clone a procedure is presented, which aims to avoid unnecessary code growth by considering how the information exposed by cloning will be used during optimization.
124
Compiling C for vectorization, parallelization, and inline expansion
R. Allen,S. Johnson +1 more
- 01 Jun 1988
TL;DR: The present paper discusses the application of a much studied body of algorithms and techniques for vectorizing and optimizing Fortran to the problem of vectorize and optimizing C, and gives insight into the strengths and weaknesses of the current theory, as well as into the strong and weak points of C on vector/parallel machines.
90
Related Papers (5)
Karl William Pettis,Robert Craig Hansen +1 more
- 01 Jun 1990
Richard E. Hank,Wen-mei W. Hwu,B.R. Rau +2 more
- 01 Dec 1995