I’m George, an intern for Google who will be working on LLVM. Currently, I’m starting to implement a set-based Alias Analysis algorithm for LLVM, which looks like it may be more accurate than Steensgard’s, and can be constructed in approximately nlog(n) time and linear space (n = number of memory locations; queries happen in constant time). It will most likely be implemented as a function pass, and if all goes well, I hope to have it committed.
If you would like more information about the algorithm, see link  below. If you’re interested in rationale behind algorithm selection, a few of the implementation details, and a summary of how it works, see  below. As an aside, chandlerc has warned me that LLVM isn’t quite perfect about notifying all function passes that transforms have been applied to a function. This is known, and will be taken into account as best as possible.
If you have any questions, suggestions, comments, etc. about this, then feel free to ping me,