Light weight optimizations for reducing hot saves and restores of callee-saved registers

Gad Haber, Moshe Klausner, Bilha Mendelson, Vadim Eisenberg

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Memory access in procedure boundaries has proven to
be one of the bottlenecks in modern architectures. While
compiler optimizations have addressed this problem,
many of these optimizations require heavy analyses on
the program code and data. This is the case, for
example, with inter-procedural optimizations for
procedure boundaries. In this work we present a novel
approach, in the form of four new light weight
optimizations, for optimizing procedure boundaries.
These new optimizations eliminate saves and restores of
callee-saved registers in frequently executed functions’
prologs and epilogs without the need for complicated
data structures such as control or data flow graphs. In
order to demonstrate their simplicity and efficiency, in
both time and space, we implemented them at post-link
level. The optimizations are guided by profile
information and the results obtained for SPECint95
benchmarks demonstrate their benefit
Original languageUndefined/Unknown
Title of host publicationм
Subtitle of host publicationFDDO4 Workshop
Number of pages12
StatePublished - 2001
Externally publishedYes

Cite this