SCAF: a speculation-aware collaborative dependence analysis framework
Sotiris Apostolakis, Ziyang Xu, Zujun Tan, Greg Chan, Simone Campanoni, David I. August
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 expensiveto-validate memory speculation in the hot loops of all 16 evaluated C/C++ SPEC benchmarks. CCS Concepts • Software and its engineering → Compilers; Automated static analysis; Dynamic analysis.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 39d0e226-72f2-4f93-a575-6215f75546ecCited by top-tier papers5
- WARio: efficient code generation for intermittent computingVito Kortbeek, Souradip Ghosh, Josiah D. Hester, Simone Campanoni et al.PLDI 2022 · 19 citations
- CARAT CAKE: replacing paging via compiler/kernel cooperationBrian Suchy, Souradip Ghosh, Drew Kersnar, Siyuan Chai et al.ASPLOS 2022 · 9 citations
- PROMPT: A Fast and Extensible Memory Profiling FrameworkZiyang Xu, Yebin Chon, Yian Su, Zujun Tan et al.OOPSLA 2024 · 4 citations
- Paths to OpenMP in the kernelJiacheng Ma, Wenyi Wang, Aaron Nelson, Michael Cuevas et al.SC 2021 · 4 citations
- SPLENDID: Supporting Parallel LLVM-IR Enhanced Natural Decompilation for Interactive DevelopmentZujun Tan, Yebin Chon, Michael Kruse, Johannes Doerfert et al.ASPLOS 2023 · 2 citations
Builds on1
Related papers
- A Framework for Fine-Grained Program VersioningYishen Chen, Saman P. AmarasingheMICRO 2024 · 1 citation
- The road not taken: exploring alias analysis based optimizations missed by the compilerKhushboo Chitre, Piyus Kedia, Rahul PurandareOOPSLA 2022 · 13 citations
- Speculation Invariance (InvarSpec): Faster Safe Execution Through Program AnalysisZirui Neil Zhao, Houxiang Ji, Mengjia Yan, Jiyong Yu et al.MICRO 2020 · 25 citations
- Declassiflow: A Static Analysis for Modeling Non-Speculative Knowledge to Relax Speculative Execution Security MeasuresRutvik Choudhary, Alan Wang, Zirui Neil Zhao, Adam Morrison et al.CCS 2023 · 4 citations
- Practical Program Modularization with Type-Based Dependence AnalysisKangjie LuS&P 2023
