The iterator is pointing at the next instruction which should not disappear
when doing the load/store replacement.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12954
91177308-0d34-0410-b5e6-
96231b3b80d8
LoadInst * LI = new LoadInst (CI->getOperand(1), "", true, CI);
CI->replaceAllUsesWith (LI);
BB->getInstList().erase (CI);
- if (Before) { // Move iterator to instruction after call
- I = Before; ++I;
- } else {
- I = BB->begin();
- }
break;
}
case Intrinsic::writeio: {
CI->getOperand(2), true, CI);
CI->replaceAllUsesWith (LI);
BB->getInstList().erase (CI);
- if (Before) { // Move iterator to instruction after call
- I = Before; ++I;
- } else {
- I = BB->begin();
- }
break;
}
default:
LoadInst * LI = new LoadInst (CI->getOperand(1), "", true, CI);
CI->replaceAllUsesWith (LI);
BB->getInstList().erase (CI);
- if (Before) { // Move iterator to instruction after call
- I = Before; ++I;
- } else {
- I = BB->begin();
- }
break;
}
case Intrinsic::writeio: {
CI->getOperand(2), true, CI);
CI->replaceAllUsesWith (LI);
BB->getInstList().erase (CI);
- if (Before) { // Move iterator to instruction after call
- I = Before; ++I;
- } else {
- I = BB->begin();
- }
break;
}
default: