From 165dac08d1bb8428b32a5f39cdd3dbee2888987f Mon Sep 17 00:00:00 2001 From: Gabor Greif Date: Thu, 15 Apr 2010 10:49:53 +0000 Subject: rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101364 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/DwarfEHPrepare.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'lib/CodeGen/DwarfEHPrepare.cpp') diff --git a/lib/CodeGen/DwarfEHPrepare.cpp b/lib/CodeGen/DwarfEHPrepare.cpp index 7dbfd7d..07e7996 100644 --- a/lib/CodeGen/DwarfEHPrepare.cpp +++ b/lib/CodeGen/DwarfEHPrepare.cpp @@ -198,7 +198,7 @@ FindAllCleanupSelectors(SmallPtrSet &Sels) { bool IsCleanUp = (NumOps == 3); if (!IsCleanUp) - if (ConstantInt *CI = dyn_cast(SI->getOperand(3))) + if (ConstantInt *CI = dyn_cast(SI->getOperand(2))) IsCleanUp = (CI->getZExtValue() == 0); if (IsCleanUp) @@ -237,7 +237,7 @@ bool DwarfEHPrepare::CleanupSelectors() { if (!Sel || Sel->getParent()->getParent() != F) continue; // Index of the ".llvm.eh.catch.all.value" variable. - unsigned OpIdx = Sel->getNumOperands() - 1; + unsigned OpIdx = Sel->getNumOperands() - 2; GlobalVariable *GV = dyn_cast(Sel->getOperand(OpIdx)); if (GV != EHCatchAllValue) continue; Sel->setOperand(OpIdx, EHCatchAllValue->getInitializer()); @@ -366,7 +366,7 @@ bool DwarfEHPrepare::HandleURoRInvokes() { bool IsCleanUp = (NumOps == 3); if (!IsCleanUp) - if (ConstantInt *CI = dyn_cast(II->getOperand(3))) + if (ConstantInt *CI = dyn_cast(II->getOperand(2))) IsCleanUp = (CI->getZExtValue() == 0); if (IsCleanUp) @@ -390,8 +390,8 @@ bool DwarfEHPrepare::HandleURoRInvokes() { // Use the exception object pointer and the personality function // from the original selector. - Args.push_back(II->getOperand(1)); // Exception object pointer. - Args.push_back(II->getOperand(2)); // Personality function. + Args.push_back(II->getOperand(0)); // Exception object pointer. + Args.push_back(II->getOperand(1)); // Personality function. Args.push_back(EHCatchAllValue->getInitializer()); // Catch-all indicator. CallInst *NewSelector = -- cgit v1.1