GPMB—software pipelining branch-intensive loops
- 1 January 1993
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
Abstract
Compile-time code transformations which expose instruction-level parallelism (ILP) typically take into account the constraints imposed by all execution scenarios in the program. However, there are additional opportunities to increase ILP along some execution sequences if the constraints from alternative execution sequences can be ignored. Traditionally, profile information has been used to identify important execution sequences for aggressive compiler optimization and scheduling. The paper presents a set of static program analysis heuristics used in the IMPACT compiler to identify execution sequences for aggressive optimization. The authors show that the static program analysis heuristics identify execution sequences without hazardous conditions that tend to prohibit compiler optimizations. As a result, the static program analysis approach often achieves optimization results comparable to profile information in spite of its inferior branch prediction accuracies. This observation makes a strong case for using static program analysis with or without profile information to facilitate aggressive compiler optimization and scheduling.<>Keywords
This publication has 10 references indexed in Scilit:
- Comparing Software And Hardware Schemes For Reducing The Cost Of BranchesPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2005
- Trace Selection For Compiling Large C Application Programs To MicrocodePublished by Institute of Electrical and Electronics Engineers (IEEE) ,2005
- Compiler code transformations for superscalar-based high-performance systemsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2003
- Branch prediction for freePublished by Association for Computing Machinery (ACM) ,1993
- The superblock: An effective technique for VLIW and superscalar compilationThe Journal of Supercomputing, 1993
- Predicting conditional branch directions from previous runs of a programPublished by Association for Computing Machinery (ACM) ,1992
- Using profile information to assist classic code optimizationsSoftware: Practice and Experience, 1991
- IMPACTACM SIGARCH Computer Architecture News, 1991
- Branch Prediction Strategies and Branch Target Buffer DesignComputer, 1984
- Trace Scheduling: A Technique for Global Microcode CompactionIEEE Transactions on Computers, 1981