LLVM SPICM Design choices: Create redoBB mapping while traversing loop, mark eligible loads in iteration and map to all dependent instruciton follow-up that become invariants after hoisting. Hoist after iteration