Validating software pipelining optimizations

The paper presents a method for translation validation of a specific optimization, software pipelining optimization, used to increase the instruction level parallelism in EPIC type of architectures. Using a methodology as in [15] to establish simulation relation between source and target based on computational induction, we describe an algorithm that automatically produces a set of decidable proof obligations. The paper also describes SPV, a prototype translation validator that automatically produces verification conditions for software pipelining optimizations of the SGI Pro-64 compiler. These verification conditions are further checked automatically by the CVC [12] checker.

[1]  B. R. Rau,et al.  Code generation schema for modulo scheduled loops , 1992, MICRO 1992.

[2]  David L. Dill,et al.  CVC: A Cooperating Validity Checker , 2002, CAV.

[3]  Ernst-Rüdiger Olderog,et al.  Correct System Design, Recent Insight and Advances, (to Hans Langmaack on the occasion of his retirement from his professorship at the University of Kiel) , 1999 .

[4]  George C. Necula,et al.  Translation validation for an optimizing compiler , 2000, PLDI '00.

[5]  Wolf Zimmermann,et al.  On the Construction of Correct Compiler Back-Ends: An ASM-Approach , 1997, J. Univers. Comput. Sci..

[6]  Vicki H. Allan,et al.  Software pipelining , 1995, CSUR.

[7]  Richard A. Huff,et al.  Lifetime-sensitive modulo scheduling , 1993, PLDI '93.

[8]  Gerhard Goos,et al.  Verification of Compilers , 1999, Correct System Design.

[9]  Amir Pnueli,et al.  VOC: A Translation Validator for Optimizing Compilers , 2002, COCV@ETAPS.

[10]  Natarajan Shankar,et al.  ICS: Integrated Canonizer and Solver , 2001, CAV.

[11]  Kai Engelhardt,et al.  Data Refinement: Model-Oriented Proof Methods and their Comparison , 1998 .

[12]  Marvin V. Zelkowitz,et al.  Programming Languages: Design and Implementation , 1975 .

[13]  Henny B. Sipma,et al.  STeP: The Stanford Temporal Prover (Educational Release) User''s Manual , 1995 .

[14]  Amir Pnueli,et al.  Validation of Optimizing Compilers , 2001 .

[15]  Rajiv Gupta,et al.  Verifying Optimizers through Comparison Checking , 2002 .

[16]  Zohar Manna,et al.  Temporal verification of reactive systems - safety , 1995 .

[17]  Sabine Glesner,et al.  Verified Code Generation for Embedded Systems , 2002, COCV@ETAPS.