• Corpus ID: 36768964

Function Outlining

@inproceedings{Zhao2010FunctionO,
  title={Function Outlining},
  author={Peng Zhao and Jos{\'e} Nelson Amaral},
  year={2010}
}
Large functions that are frequently executed, i.e. hot, are common in non-numeric applications. These functions present challenges to modern compilers not only because they require more time and resources for compilation, but also because they might degrade runtime performance by preventing optimizations such as function inlining. Fortunately, often large portions of the code in hot functions are rarely executed, i.e. cold. This paper describes a function outlining technique to split cold… 

Figures and Tables from this paper

An Experience with Code-Size Optimization for Production iOS Mobile Applications

This paper proposes whole-program, fine-grained machine-code outlining as an effective optimization to constrain the code-size growth in iOS mobile applications, and evaluates the effectiveness of the new optimization pipeline on the UberRider iOS app.

A region-based compilation technique for a Java just-in-time compiler

The experimental results show that the approach of region-based compilation achieves approximately 5% performance improvement on average, while reducing the compilation overhead by 20 to 30%, in comparison to the traditional function- based compilation techniques.

To Inline or Not to Inline? Enhanced Inlining Decisions

The trade-off that has to be worked out to make the correct inlining decisions is described and two new heuristics to enhance the ORC inlining heuristic: adaptation and cycle_density are introduced.

Adaptive optimization for self: reconciling high performance with exploratory programming

Four new techniques reconcile exploratory programming, ubiquitous abstraction, and high performance by allowing the compiler to inline message sends based on information extracted from the runtime system.

Partial Inlining

Subprogram inlining is an optimization that has been studied extensively in the literature because it eliminates the overhead associated with the procedure call, the inlined code can be optimized for the particular call site that was expanded, and the caller's code can potentially be improved because of the additional information about the called code that becomes available due to inlining.

Trace Selection For Compiling Large C Application Programs To Microcode

  • P. ChangW. Hwu
  • Computer Science
    [1988] Proceedings of the 21st Annual Workshop on Microprogramming and Microarchitecture - MICRO '21
  • 1988
This work reports the distribution of control transfers categorized according to their potential impact on the microcode optimizations using the IMPACT C compiler, which contains integrated profiling and analysis tools.

Taming control flow: a structured approach to eliminating goto statements

  • Ana M. ErosaL. Hendren
  • Computer Science
    Proceedings of 1994 IEEE International Conference on Computer Languages (ICCL'94)
  • 1994
A straight-forward algorithm to structure C programs by eliminating all goto statements by working directly on a high-level abstract syntax tree (AST) representation of the program and could easily be integrated into any compiler that uses an AST-based intermediate representation.

A study of a C function inliner

The authors have written a tool called INLINER, which is a source‐to‐source filter that automatically performs inline expansion of C functions in a module that investigates the effect of inlining using a set of programs on several machines.

Procedure Restructuring for Ambitious Optimization

Region formation analysis with demand-driven inlining for region-based optimization

  • Tom WayB. BreechL. Pollock
  • Computer Science
    Proceedings 2000 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00622)
  • 2000
This paper presents a region formation algorithm that eliminates the high compile-time memory costs due to an aggressive inlining prepass, and experimental results on a subset of the SPEC benchmarks demonstrate a significant reduction in compile- time memory requirements with comparable runtime performance.

A Region-based Partial Inlining Algorithm for an ILP Optimizing Compiler

An algorithm is evaluated that incorporates partial inlining into a regionbased compilation framework to achieve the optimization benefits of full inlining, with the added benefit of reduced code growth.