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 performances 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 implemented simply and efficiently, is provably sound, and appears to be complete with respect to most modulo scheduling algorithms. A conclusion of this case study is that it is possible and effective to use symbolic evaluation to reason about loop transformations.
Document type :
Conference papers
Complete list of metadatas

Cited literature [28 references]  Display  Hide  Download

https://hal.inria.fr/inria-00529836
Contributor : Xavier Leroy <>
Submitted on : Tuesday, October 26, 2010 - 5:02:20 PM
Last modification on : Friday, May 25, 2018 - 12:02:07 PM
Long-term archiving on : Friday, October 26, 2012 - 12:25:29 PM

File

validation-softpipe.pdf
Files produced by the author(s)

Identifiers

Collections

Citation

Jean-Baptiste Tristan, Xavier Leroy. A simple, verified validator for software pipelining. 37th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2010, Jan 2010, Madrid, Spain. ⟨10.1145/1706299.1706311⟩. ⟨inria-00529836⟩

Share

Metrics

Record views

185

Files downloads

217