[llvm-commits] [llvm] r139076 - /llvm/trunk/lib/VMCore/AutoUpgrade.cpp
Bill Wendling
isanbard at gmail.com
Fri Sep 2 18:38:17 PDT 2011
Author: void
Date: Fri Sep 2 20:38:17 2011
New Revision: 139076
URL: http://llvm.org/viewvc/llvm-project?rev=139076&view=rev
Log:
Don't reload the values that are already there. The llvm.eh.resume uses the same
values that the resume instruction uses.
PR10850
Modified:
llvm/trunk/lib/VMCore/AutoUpgrade.cpp
Modified: llvm/trunk/lib/VMCore/AutoUpgrade.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/AutoUpgrade.cpp?rev=139076&r1=139075&r2=139076&view=diff
==============================================================================
--- llvm/trunk/lib/VMCore/AutoUpgrade.cpp (original)
+++ llvm/trunk/lib/VMCore/AutoUpgrade.cpp Fri Sep 2 20:38:17 2011
@@ -510,18 +510,15 @@
while (!EHResume->use_empty()) {
CallInst *Resume = cast<CallInst>(EHResume->use_back());
BasicBlock *BB = Resume->getParent();
- Function *Fn = BB->getParent();
- std::pair<Value*, Value*> &ExnSel = FnToLPadSlotMap[Fn];
+
IRBuilder<> Builder(Context);
Builder.SetInsertPoint(BB, Resume);
- Value *Exn = Builder.CreateLoad(ExnSel.first, "exn");
- Value *Sel = Builder.CreateLoad(ExnSel.second, "sel");
-
Value *LPadVal =
Builder.CreateInsertValue(UndefValue::get(LPadSlotTy),
- Exn, 0, "lpad.val");
- LPadVal = Builder.CreateInsertValue(LPadVal, Sel, 1, "lpad.val");
+ Resume->getArgOperand(0), 0, "lpad.val");
+ LPadVal = Builder.CreateInsertValue(LPadVal, Resume->getArgOperand(1),
+ 1, "lpad.val");
Builder.CreateResume(LPadVal);
// Remove all instructions after the 'resume.'
More information about the llvm-commits
mailing list