The impact of if-conversion and branch prediction on program execution on the Intel® Itanium™ processor

  • Authors:
  • Youngsoo Choi;Allan Knies;Luke Gerke;Tin-Fook Ngai

  • Affiliations:
  • Intel Corporation, Santa Clara, CA;Intel Corporation, Santa Clara, CA;Intel Corporation, Santa Clara, CA;Intel Corporation, Santa Clara, CA

  • Venue:
  • Proceedings of the 34th annual ACM/IEEE international symposium on Microarchitecture
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

The research community has studied if-conversion for many years. However, due to the lack of existing hardware, studies were conducted by simulating code generated by experimental compilers. This paper presents the first comprehensive study of the use of predication to implement if-conversion on production hardware with a near-production compiler. To better understand trends in the measurements, we generated binaries at three increasing levels of if-conversion aggressiveness. For each level, we gathered data regarding the global runtime effects of if-conversion on overall execution time, register pressure, code size, and branch behavior. Furthermore, we studied the inherent characteristics of program control-flow structure related to branching to help determine fundamental limits of if-conversion. Our results show that on the Itanium™ processor if-conversion could potentially remove 29% of the branch mispredictions in SPEC2OOOCINT but that this accounts for a substantially smaller overall program speedup than previously reported.