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 can be ignored. Traditionally,
profile information has been used to identify important
execution sequences for aggressive compiler optimization
and scheduling. This paper presents a set of static program
analysis heuristics used in the IMPACT compiler to identify
execution sequences for aggressive optimization. We 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.