Should potential loop optimizations influence inlining decisions?

  • Authors:
  • Christopher Barton;José Nelson Amaral;Bob Blainey

  • Affiliations:
  • Department of Computing Science, University of Alberta, Edmonton, Canada;Department of Computing Science, University of Alberta, Edmonton, Canada;IBM Toronto Software Laboratory, Toronto, Canada

  • Venue:
  • CASCON '03 Proceedings of the 2003 conference of the Centre for Advanced Studies on Collaborative research
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.