OSDN Git Service

eliminate use of Instruction::getPrev(). Patch by Gabor Greif in 2005.
authorChris Lattner <sabre@nondot.org>
Tue, 17 Apr 2007 17:38:28 +0000 (17:38 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 17 Apr 2007 17:38:28 +0000 (17:38 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36198 91177308-0d34-0410-b5e6-96231b3b80d8

lib/ExecutionEngine/Interpreter/Execution.cpp

index 3e7a3e7..98213c8 100644 (file)
@@ -866,16 +866,19 @@ void Interpreter::visitCallSite(CallSite CS) {
       // If it is an unknown intrinsic function, use the intrinsic lowering
       // class to transform it into hopefully tasty LLVM code.
       //
-      Instruction *Prev = CS.getInstruction()->getPrev();
+      BasicBlock::iterator me(CS.getInstruction());
       BasicBlock *Parent = CS.getInstruction()->getParent();
+      bool atBegin(Parent->begin() == me);
+      if (!atBegin)
+        --me;
       IL->LowerIntrinsicCall(cast<CallInst>(CS.getInstruction()));
 
       // Restore the CurInst pointer to the first instruction newly inserted, if
       // any.
-      if (!Prev) {
+      if (atBegin) {
         SF.CurInst = Parent->begin();
       } else {
-        SF.CurInst = Prev;
+        SF.CurInst = me;
         ++SF.CurInst;
       }
       return;