/// Moves I before IP. Returns new insert point. static BasicBlock::iterator moveBeforeInsertPoint(BasicBlock::iterator I, BasicBlock::iterator IP) { // If I is IP, move the insert point down. if (I == IP) return ++IP; // Otherwise, move I before IP and return IP. I->moveBefore(IP); return IP; }