ICS '88 Proceedings of the 2nd international conference on Supercomputing
Semantical interprocedural parallelization: an overview of the PIPS project
ICS '91 Proceedings of the 5th international conference on Supercomputing
The Omega Library interface guide
The Omega Library interface guide
Transitive closure of infinite graphs and its applications
International Journal of Parallel Programming - Special issue: selected papers from the eighth international workshop on languages and compilers for parallel computing
Journal of Parallel and Distributed Computing
Translation validation for an optimizing compiler
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
ICS '01 Proceedings of the 15th international conference on Supercomputing
Computer-Aided Reasoning: An Approach
Computer-Aided Reasoning: An Approach
Storage Management Programmable Process
Storage Management Programmable Process
Array recovery and high-level transformations for DSP applications
ACM Transactions on Embedded Computing Systems (TECS)
Uniformization of Affine Dependance Programs for Parallel Embedded System Design
ICPP '02 Proceedings of the 2001 International Conference on Parallel Processing
Comparing the Galois Connection and Widening/Narrowing Approaches to Abstract Interpretation
PLILP '92 Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming
On the Equivalence of Two Systems of Affine Recurrence Equations (Research Note)
Euro-Par '02 Proceedings of the 8th International Euro-Par Conference on Parallel Processing
IWIA '01 Proceedings of the Innovative Architecture for Future Generation High-Performance Processors and Systems (IWIA'01)
Precise interprocedural analysis through linear algebra
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Code Generation in the Polyhedral Model Is Easier Than You Think
Proceedings of the 13th International Conference on Parallel Architectures and Compilation Techniques
Theoretical Computer Science - Implementation and application of automata
Translation and Run-Time Validation of Loop Transformations
Formal Methods in System Design
Formal equivalence checking for loop optimization in C programs without unrolling
ACST'07 Proceedings of the third conference on IASTED International Conference: Advances in Computer Science and Technology
Inference rules for proving the equivalence of recursive procedures
Acta Informatica
Advanced Memory Optimization Techniques for Low-Power Embedded Processors
Advanced Memory Optimization Techniques for Low-Power Embedded Processors
Proving optimizations correct using parameterized program equivalence
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Equivalence Checking of Static Affine Programs Using Widening to Handle Recurrences
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
Proceedings of the 46th Annual Design Automation Conference
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Experience with Widening Based Equivalence Checking in Realistic Multimedia Systems
Journal of Electronic Testing: Theory and Applications
isl: an integer set library for the polyhedral model
ICMS'10 Proceedings of the Third international congress conference on Mathematical software
Transitive closures of affine integer tuple relations and their overapproximations
SAS'11 Proceedings of the 18th international conference on Static analysis
Verification of source code transformations by program equivalence checking
CC'05 Proceedings of the 14th international conference on Compiler Construction
Proceedings of the 5th IBM Collaborative Academia Research Exchange Workshop
Hi-index | 0.00 |
Designers often apply manual or semi-automatic loop and data transformations on array- and loop-intensive programs to improve performance. It is crucial that such transformations preserve the functionality of the program. This article presents an automatic method for constructing equivalence proofs for the class of static affine programs. The equivalence checking is performed on a dependence graph abstraction and uses a new approach based on widening to find the proper induction hypotheses for reasoning about recurrences. Unlike transitive-closure-based approaches, this widening approach can also handle nonuniform recurrences. The implementation is publicly available and is the first of its kind to fully support commutative operations.