Commit Gabor Greif's patch to use iterators in lowering intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20816 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/PowerPC/PPC32ISelSimple.cpp b/lib/Target/PowerPC/PPC32ISelSimple.cpp
index f2b5cec..4793e4b 100644
--- a/lib/Target/PowerPC/PPC32ISelSimple.cpp
+++ b/lib/Target/PowerPC/PPC32ISelSimple.cpp
@@ -1928,15 +1928,16 @@
BB->getInstList().erase(CI);
break;
}
- default:
+ default: {
// All other intrinsic calls we must lower.
- Instruction *Before = CI->getPrev();
+ BasicBlock::iterator me(CI);
+ bool atBegin(BB->begin() == me);
+ if (!atBegin)
+ --me;
TM.getIntrinsicLowering().LowerIntrinsicCall(CI);
- if (Before) { // Move iterator to instruction after call
- I = Before; ++I;
- } else {
- I = BB->begin();
- }
+ // Move iterator to instruction after call
+ I = atBegin ? BB->begin() : ++me;
+ }
}
}