New LLVM Pass

This is just a note to mention that I checked in a new LLVM pass: Loop
Preheader insertion:

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: