Abstract
Program analysis determines the potential dataflow and control flow relationships among instructions so that compiler optimizations can respect these relationships to transform code correctly. Since many of these relationships rarely or never occur, speculative optimizations assert they do not exist while optimizing the code. To preserve correctness, speculative optimizations add validation checks to activate recovery code when these assertions prove untrue. This approach results in many missed opportunities because program analysis and thus other optimizations remain unaware of the full impact of these dynamically-enforced speculative assertions. To address this problem, this paper presents SCAF, a Speculation-aware Collaborative dependence Analysis Framework. SCAF learns of available speculative assertions via profiling, computes their full impact on memory dependence analysis, and makes this resulting information available for all code optimizations. SCAF is modular (adding new analysis modules is easy) and collaborative (modules cooperate to produce a result more precise than the confluence of all individual results). Relative to the best prior speculation-aware dependence analysis technique, by computing the full impact of speculation on memory dependence analysis, SCAF dramatically reduces the need for expensive-to-validate memory speculation in the hot loops of all 16 evaluated C/C++ SPEC benchmarks.
Original language | English (US) |
---|---|
Title of host publication | PLDI 2020 - Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation |
Editors | Alastair F. Donaldson, Emina Torlak |
Publisher | Association for Computing Machinery |
Pages | 638-654 |
Number of pages | 17 |
ISBN (Electronic) | 9781450376136 |
DOIs | |
State | Published - Jun 11 2020 |
Event | 41st ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2020 - London, United Kingdom Duration: Jun 15 2020 → Jun 20 2020 |
Publication series
Name | Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) |
---|
Conference
Conference | 41st ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2020 |
---|---|
Country/Territory | United Kingdom |
City | London |
Period | 6/15/20 → 6/20/20 |
Funding
We thank the Liberty Research Group for their support and feedback during this work. We also thank Alexandra Jim-borean and the anonymous reviewers for their insightful comments and suggestions. This work was supported by the National Science Foundation (NSF) through Grants CCF-1814654 and CNS-1763743. All opinions, findings, conclusions, and recommendations expressed in this paper are those of the authors and do not necessarily reflect the views of the NSF.
Keywords
- Collaboration
- Dependence analysis
- Speculation
ASJC Scopus subject areas
- Software