Profile-guided automatic inline expansion for C programs
Software—Practice & Experience
Static branch frequency and program profile analysis
MICRO 27 Proceedings of the 27th annual international symposium on Microarchitecture
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Inline Expansion: When and How?
PLILP '97 Proceedings of the9th International Symposium on Programming Languages: Implementations, Logics, and Programs: Including a Special Trach on Declarative Programming Languages in Education
Removing impediments to loop fusion through code transformations
LCPC'02 Proceedings of the 15th international conference on Languages and Compilers for Parallel Computing
Inline Analysis: Beyond Selection Heuristics
Proceedings of the International Symposium on Code Generation and Optimization
Hi-index | 0.00 |
Inlining decisions are made based on the frequency of the function call, on the size of the caller and callee, on the nesting level of the function call in the call graph, and on the programmer's directives. In intraprocedural code optimization, loop fusion has proven to be advantageous when it results in improved data reuse, instruction scheduling, and register allocation. We want to study the opportunity to improve the performance of programs when the potential for additional loop fusion is taken into consideration in the inlining decisions. In this paper we present the results of our first evaluation experiments: we changed the inlining decisions in the IBM®XL Compile Suite to inline liberally and measured how many additional loops we were able to fuse in the SPECint2000 and SPECfp2000 benchmark suites. The idea is that if liberal inlining does not result in significant additional loop fusion for a given set of benchmarks, there will be little hope for interprocedural loop fusion in that set. Our preliminary results indicate that existing inlining heuristics uncover almost all interprocedural loop fusion opportunities in the SPEC benchmark suite.