Proving Safety of Speculative Load Instructions at Compile Time

Speculative execution of instructions is one of the primary means for enhancing program performance of superscalar and VLIW machines. One of the pitfalls of such compile-time speculative scheduling of instructions is that it may cause run-time exceptions that did not exist in the original version of the program.

[1]  James R. Larus,et al.  Restructuring symbolic programs for concurrent execution on multiprocessors , 1989 .

[2]  M. Wegman,et al.  Global value numbers and redundant computations , 1988, POPL '88.

[3]  Michael D. Smith,et al.  Boosting beyond static scheduling in a superscalar processor , 1990, ISCA '90.

[4]  Eugene W. Myers,et al.  A precise inter-procedural data flow algorithm , 1981, POPL '81.

[5]  Ken Kennedy Safety of code motion , 1972 .

[6]  Reinhard Wilhelm,et al.  A Logic-Based Approach to Data Flow Analysis Problem , 1990, PLILP.

[7]  Scott A. Mahlke,et al.  IMPACT: an architectural framework for multiple-instruction-issue processors , 1991, ISCA '91.

[8]  Michael Rodeh,et al.  Global instruction scheduling for superscalar machines , 1991, PLDI '91.

[9]  John H. Reif,et al.  Symbolic evaluation and the global value graph , 1977, POPL.

[10]  John R. Ellis,et al.  Bulldog: A Compiler for VLIW Architectures , 1986 .

[11]  John L. Hennessy,et al.  Program optimization and exception handling , 1981, POPL '81.

[12]  Thomas R. Gross,et al.  Postpass Code Optimization of Pipeline Constraints , 1983, TOPL.

[13]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[14]  Jeffrey D. Ullman,et al.  Global Data Flow Analysis and Iterative Algorithms , 1976, J. ACM.

[15]  Toshio Nakatani,et al.  A new compilation technique for parallelizing loops with unpredictable branches on a VLIW architecture , 1990 .

[16]  Rajiv Gupta,et al.  Region Scheduling: An Approach for Detecting and Redistributing Parallelism , 1990, IEEE Trans. Software Eng..

[17]  Gary A. Kildall,et al.  A unified approach to global program optimization , 1973, POPL.

[18]  Henry S. Warren,et al.  Instruction Scheduling for the IBM RISC System/6000 Processor , 1990, IBM J. Res. Dev..

[19]  Bowen Alpern,et al.  Detecting equality of variables in programs , 1988, POPL '88.

[20]  Mark N. Wegman,et al.  Constant propagation with conditional branches , 1985, POPL.