Omega 1.2
Omega has two major
components. One component is the Omega test, a system for manipulating
sets of affine constraints over integer variables. When we started work
on the Omega test for dependence testing, it was designed as a decision
test for the existence of integer solutions to affine constraints. We
found that by having the Omega test return symbolic answers, rather than
yes/no answers, we could perform standard data dependence analysis
quicker. As we have explored more difficult issues in analysis and
transformation of scientific programs, we have extended the Omega test
to the point where it is a complete system for simplifying and verifying
Presburger formulas (Presburger formulas contain affine constraints, the
usual logical connectives, and existential and universal quantifiers).
Of course, the Omega test cannot simplify all Presburger formulas
efficiently (there is a 2^(2^n) nondeterministic lower bound and a
2^(2^(2^n)) deterministic upper bound on the time required to verify
Presburger formulas). However, in practice the Omega test is reasonably
efficient for the tasks for which we currently use it.
SRPMS
omega-1.2-4.src.rpm
Patch Descriptions
- omega-1.2-build.patch
- use Fedora Core paths. Build shared libraries instead of static
libraries.
- omega-1.2-iso-c++.patch
- Update to ISO C++. This makes it possible to build with recent
versions of g++.
- omega-1.2-64bit.patch
- Make the code 64-bit clean.
- omega-1.2-uninit.patch
- Quiet compiler warnings about uninitialized variables.
- omega-1.2-destruct.patch
- Quiet compiler warnings about classes with virtual functions and
non-virtual destructors.
- omega-1.2-assert.patch
- Change the assert macro so the compiler doesn't emit warnings every
single time it is used.
- omega-1.2-lexerparser.patch
- Several fixes related to using a newer flex/bison than the omega
developers.
- omega-1.2-xk_latin1.patch
- The X11 header files define
XK_LATIN1, so don't define
it in the code also.
- omega-1.2-symbol.patch
- Move symbols around so we don't produce libraries containing
unresolved symbols.
- omega-1.2-demo.patch
- Patch the demo scripts so they'll actually run.
- omega-1.2-gcc43.patch
- Fix a boatload of warnings from GCC 4.3. This patch does not
eliminate all of the new warnings. Some of them are due to
the lesstif headers, which use
char * in a number of
places where const char * should be used.
TODO
- Make the code compile with icc.
- Fix the rest of the unresolved library symbols. This is going to
require major surgery in a few cases.
- Add subdirectory dependencies to the top-level Makefile so that
parallel makes work.
Last modified: Mon Jun 9 15:00:55 MDT 2008
by Jerry James