This is the beginning of a new implementation of Andersen's.
So far, it has been converted to use a new solver algorithm, support
field sensitivity (not yet implemented in the constraint building, but
the solver supports it) and to use SparseBitVectors.
It is roughly 100x faster than the old implementation on larger testcases.
This is just the beginning, work is being done to change the solver to
an even better algorithm, implementation off-line constraint
optimizations, and implement field sensitivity.
My goal is to be able to turn it on by default for LLVM 2.2
This patch passes all the old Andersen's tests, though i am sure there are bugs.
Since the solver is being rewritten into a different algorithm as we
speak (not by me), now would be a good time to get complaints in
andersens.diff (59.3 KB)