This is just a note to mention that I checked in a new LLVM pass: Loop
Preheader insertion:
http://llvm.cs.uiuc.edu/doxygen/LoopPreheaders_8cpp-source.html
Loop invariant code motion uses it to make sure it has a place to put code
hoisted out of loops. This dramatically simplifies LICM, because before
it tried to cope without preheaders:
http://llvm.cs.uiuc.edu/doxygen/LICM_8cpp-source.html
-Chris
http://llvm.cs.uiuc.edu/
http://www.nondot.org/~sabre/Projects/