A compiler framework for speculative optimizations
TL;DR: This paper proposes a speculative static single assignment form to incorporate information from alias profiling and/or heuristic rules for data speculation, thus allowing existing frameworks to be extended to support both control and data speculation.
read more
Abstract: Speculative execution, such as control speculation or data speculation, is an effective way to improve program performance. Using edge/path profile information or simple heuristic rules, existing compiler frameworks can adequately incorporate and exploit control speculation. However, very little has been done so far to allow existing compiler frameworks to incorporate and exploit data speculation effectively in various program transformations beyond instruction scheduling. This paper proposes a speculative static single assignment form to incorporate information from alias profiling and/or heuristic rules for data speculation, thus allowing existing frameworks to be extended to support both control and data speculation. Such a general framework is very useful for EPIC architectures that provide run-time checking (such as advanced load address table) on data speculation to guarantee the correctness of program execution. We use SSAPRE as one example to illustrate how to incorporate data speculation in partial redundancy elimination, register promotion, and strength reduction. Our extended framework allows both control and data speculations to be performed on top of SSAPRE and, thus, enables more aggressive speculative optimizations. The proposed framework has been implemented on Intel's Open Research Compiler. We present experimental data on some SPEC2000 benchmark programs to demonstrate the usefulness of this framework.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Patent
Disambiguation in dynamic binary translation
Bolei Guo,Youfeng Wu +1 more
- 05 Dec 2006
TL;DR: In this paper, a method and apparatus for disambiguating in a dynamic binary translator is described, based on a measure of likelihood of frequency of execution of the code segment and heuristically identifying one or more ambiguous memory dependencies.
31
Efficient and accurate data dependence profiling using software signatures
Rajeshwar Vanka,James Tuck +1 more
- 31 Mar 2012
TL;DR: This work finds a fast profiler which matches the accuracy of prior works with a slowdown of 2.97x, and considers a new approach based on efficient set operations using software signatures, which is the most accurate one to date.
22
Dynamic register promotion of stack variables
Jianjun Li,Chenggang Wu,Wei-Chung Hsu +2 more
- 02 Apr 2011
TL;DR: This paper devised a runtime alias detection approach based on the page protection mechanism in Linux and a novel stack switching method to catch memory aliases at run-time that is much less expensive than traditional approaches like inserting address checking instructions.
14
Data dependence profiling for speculative optimizations
Tong Chen,Jin Lin,Xiaoru Dai,Wei-Chung Hsu,Pen-Chung Yew +4 more
- 01 Dec 2004
TL;DR: In this paper, the authors examine issues related to data dependence profiling, and propose various techniques to improve the efficiency of the data dependence analysis for speculative optimizations and thread generation in OCaml.
10
Optimal and Perfectly Parallel Algorithms for On-demand Data-Flow Analysis
Krishnendu Chatterjee,Amir Kafshdar Goharshady,Rasmus Ibsen-Jensen,Andreas Pavlogiannis +3 more
- 27 Apr 2020
TL;DR: The most widely used framework for interprocedural dataflow analysis is IFDS, which encompasses distributive data-flow functions over a finite domain this paper, and it provides a natural split between (i) an offline (or preprocessing) phase, where the program is partially analyzed and analysis summaries are created, and (ii) an online (or query) phase where analysis queries arrive on demand and the summary is used to speed up answering queries.
References
Efficiently computing static single assignment form and the control dependence graph
TL;DR: In this article, the authors present new algorithms that efficiently compute static single assignment forms and control dependence graphs for arbitrary control flow graphs using the concept of {\em dominance frontiers} and give analytical and experimental evidence that these data structures are usually linear in the size of the original program.
Points-to analysis in almost linear time
Bjarne Steensgaard
- 01 Jan 1996
TL;DR: This is the asymptotically fastest non-trivial interprocedural points-to analysis algorithm yet described and is based on a non-standard type system for describing a universally valid storage shape graph for a program in linear space.
Pointer analysis: haven't we solved this problem yet?
Michael Hind
- 01 Jun 2001
TL;DR: Issues related to pointer analysis and remaining open problems are described.
682
Efficient, context-sensitive pointer analysis for c programs
Monica S. Lam,Robert P. Wilson +1 more
- 01 Jan 1998
TL;DR: In this article, a partial transfer function (PTF) describes the behavior of a procedure assuming that certain alias relationships hold when it is called, and can reuse a PTF in many calling contexts as long as the aliases among the inputs to the procedure are the same.
603
•Book
Efficient, context-sensitive pointer analysis for C programs
Robert P. Wilson,Monica S. Lam +1 more
- 01 Jan 1997
TL;DR: An efficient technique for context-sensitive pointer analysis that is applicable to real C programs and based on a low-level representation of memory locations that safely handles all the features of C.
555