Reactive techniques for controlling software speculation

Craig Zilles, Naveen Neelakantam

Research output: Chapter in Book/Report/Conference proceedingConference contribution


Aggressive software speculation holds significant potential, because it enables program transformations to reduce the program's critical path. Like any form of speculation, however, the key to software speculation is employing it only where it is likely to succeed. While mechanisms for controlling hardware speculation (e.g., saturating counters updated after each instance) are well understood, these techniques do not translate directly to software techniques because changing a speculation requires changing the code. As it stands, the dominant software speculation control technique, non-reactive profile-guided optimization, lacks the robustness to support aggressive speculation. The primary thesis of this paper is that software speculation can be made to be robust by adding a reactive controller that can dynamically adjust the speculation. We make two primary observations about such systems: 1) reactive control systems can select behaviors on which to speculate with performance that equals or exceeds self-training, and 2) such control systems are remarkably latency tolerant. Although reactivity is required, it can be done at a low frequency; latencies of hundreds of thousands, or even millions of cycles, can be tolerated for most actions. Together these two characteristics imply that robust aggressive software speculation is a realistic goal.

Original languageEnglish (US)
Title of host publicationProceedings of the 2005 International Symposium on Code Generation and Optimization, CGO 2005
Number of pages12
StatePublished - 2005

Publication series

NameProceedings of the 2005 International Symposium on Code Generation and Optimization, CGO 2005

ASJC Scopus subject areas

  • General Engineering


Dive into the research topics of 'Reactive techniques for controlling software speculation'. Together they form a unique fingerprint.

Cite this