The Omega test: a fast and practical integer programming algorithm for dependence analysis (1992)
Cached
Download Links
- [www.cs.umd.edu]
- [www.cs.tamu.edu]
- [www.cs.cmu.edu]
- [www.cs.cmu.edu]
- [www-2.cs.cmu.edu]
- DBLP
Other Repositories/Bibliography
| Venue: | Communications of the ACM |
| Citations: | 406 - 15 self |
BibTeX
@ARTICLE{Pugh92theomega,
author = {William Pugh},
title = {The Omega test: a fast and practical integer programming algorithm for dependence analysis},
journal = {Communications of the ACM},
year = {1992},
volume = {8},
pages = {4--13}
}
Years of Citing Articles
OpenURL
Abstract
The Omega test is an integer programming algorithm that can determine whether a dependence exists between two array references, and if so, under what conditions. Conventional wisdom holds that integer programming techniques are far too expensive to be used for dependence analysis, except as a method of last resort for situations that cannot be decided by simpler methods. We present evidence that suggests this wisdom is wrong, and that the Omega test is competitive with approximate algorithms used in practice and suitable for use in production compilers. The Omega test is based on an extension of Fourier-Motzkin variable elimination to integer programming, and has worst-case exponential time complexity. However, we show that for many situations in which other (polynomial) methods are accurate, the Omega test has low order polynomial time complexity. The Omega test can be used to simplify integer programming problems, rather than just deciding them. This has many applications, including accurately and efficiently computing dependence direction and distance vectors. 1







