The algorithms for CFLAA + data structures all in one! (Read: Internship over, so I no longer have access to my gbiv@ email, which I used to make the old revisions).
Old reviews:
- http://reviews.llvm.org/D4551 (CFLAA Algorithm)
- http://reviews.llvm.org/D4550 (Data structures)
This patch contains the algorithm for the CFL Alias Analysis described here: https://docs.google.com/document/d/1nGFKMmr-HbdEiag9G1GeWurgOV0CweSUjLXFr3LAwqg/edit . Currently, we don't have any extremely fancy features, sans some interprocedural analysis (i.e. no field sensitivity, etc.), and we do best sitting behind BasicAA + TBAA.
Diff notes:
Merged WeightedBidirectionalGraph into CFLAliasAnalysis.cpp
Addressed all other feedback, except hfinkel@415. I don't want to stop scanning inside of IPA if we hit noalias/byval because of the following:
int foo(long a, int* b) { *(int**)a = b; }
If the consensus is that such code shouldn't be an issue, then I'll happily speed IPA up a bit.
Sorry for the hurried message -- I have a flight soon. :)
George