Unexpected side effects of inline substitution
- 1 March 1992
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Letters on Programming Languages and Systems
- Vol. 1 (1) , 22-32
- https://doi.org/10.1145/130616.130619
Abstract
The structure of a program can encode implicit information that changes both the shape and speed of the generated code. Interprocedural transformations like inlining often discard such information; using interprocedural data-flow information as a basis for optimization can have the same effect. In the course of a study on inline substitution with commercial FORTRAN compilers, we encountered unexpected performance problems in one of the programs. This paper describes the specific problem that we encountered, explores its origins, and examines the ability of several analytical techniques to help the compiler avoid similar problems.Keywords
This publication has 17 references indexed in Scilit:
- An experiment with inline substitutionSoftware: Practice and Experience, 1991
- Improving register allocation for subscripted variablesACM SIGPLAN Notices, 1990
- Register allocation across procedure and module boundariesACM SIGPLAN Notices, 1990
- Interprocedural analysis vs. procedure integrationInformation Processing Letters, 1989
- Inline function expansion for compiling C programsACM SIGPLAN Notices, 1989
- Interprocedural optimization: Experimental resultsSoftware: Practice and Experience, 1989
- A simple interprocedural register allocation algorithm and its effectiveness for LISPACM Transactions on Programming Languages and Systems, 1989
- Estimating interlock and improving balance for pipelined architecturesJournal of Parallel and Distributed Computing, 1988
- A study of a C function inlinerSoftware: Practice and Experience, 1988
- The impact of interprocedural analysis and optimization in the R n programming environmentACM Transactions on Programming Languages and Systems, 1986