2010
DOI: 10.1145/1707801.1706311
|View full text |Cite
|
Sign up to set email alerts
|

A simple, verified validator for software pipelining

Abstract: Software pipelining is a loop optimization that overlaps the execution of several iterations of a loop to expose more instruction-level parallelism. It can result in first-class performance characteristics, but at the cost of significant obfuscation of the code, making this optimization difficult to test and debug. In this paper, we present a translation validation algorithm that uses symbolic evaluation to detect semantics discrepancies between a loop and its pipelined version. Our algorithm can be implemente… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
7
0

Year Published

2012
2012
2018
2018

Publication Types

Select...
3
2
2

Relationship

1
6

Authors

Journals

citations
Cited by 14 publications
(7 citation statements)
references
References 28 publications
0
7
0
Order By: Relevance
“…For instance, we prove the soundness of a number of re-writes, such as the communting equation, duplication elimination, pure lambda-hoist, etc. We also prove the soundness of the Masking rule and discuss the loop-unrolling example in [31].…”
Section: A Online Appendixmentioning
confidence: 97%
See 2 more Smart Citations
“…For instance, we prove the soundness of a number of re-writes, such as the communting equation, duplication elimination, pure lambda-hoist, etc. We also prove the soundness of the Masking rule and discuss the loop-unrolling example in [31].…”
Section: A Online Appendixmentioning
confidence: 97%
“…To give an impression of the formulation of these validations we state the corresponding proposition for "dead computation" which is particularly interesting in that it contains a termination precondition. The proof, and details of the other equations are in the appendix, which also contains a validation of loop unrolling optimisation described by Tristan and Leroy [31].…”
Section: Heap Persmentioning
confidence: 99%
See 1 more Smart Citation
“…Loop Parallelization: Our next example is inspired by a loop unrolling optimization [26]. Assume given a linked list of integers head n 0 n 1 n j null n −1 n −k head n j+1 null Figure 1.…”
Section: Introductionmentioning
confidence: 99%
“…Projects like CompCert [9,[16][17][18] are tackling the problem of compiler bugs by mechanically verifying the correctness of compilers. Indeed, although the aforementioned study uncovered many bugs in other compilers, the only bugs found in CompCert were in those parts of the compiler not (yet) formally verified.…”
Section: Introductionmentioning
confidence: 99%