diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-12-18 21:23:32 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-12-18 21:23:32 +0000 |
commit | 708a91a10366f0aa8f2b3912dd8e047ca1a66e5b (patch) | |
tree | 237dd728caae5ec779148bfa6276cd834e993feb | |
parent | 79753a07a6dc1f84099cea70aa8a8a369e909157 (diff) | |
download | bcm5719-llvm-708a91a10366f0aa8f2b3912dd8e047ca1a66e5b.tar.gz bcm5719-llvm-708a91a10366f0aa8f2b3912dd8e047ca1a66e5b.zip |
Revert "Enhance BranchProbabilityInfo::calcUnreachableHeuristics for InvokeInst"
This reverts commit r256028.
It broke:
LLVM :: CodeGen/Mips/eh.ll
LLVM :: CodeGen/Mips/insn-zero-size-bb.ll
llvm-svn: 256032
-rw-r--r-- | llvm/lib/Analysis/BranchProbabilityInfo.cpp | 10 | ||||
-rw-r--r-- | llvm/test/Analysis/BranchProbabilityInfo/noreturn.ll | 45 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/catchret-empty-fallthrough.ll | 6 |
3 files changed, 2 insertions, 59 deletions
diff --git a/llvm/lib/Analysis/BranchProbabilityInfo.cpp b/llvm/lib/Analysis/BranchProbabilityInfo.cpp index a0d6123b583..6cdf43a06a9 100644 --- a/llvm/lib/Analysis/BranchProbabilityInfo.cpp +++ b/llvm/lib/Analysis/BranchProbabilityInfo.cpp @@ -147,16 +147,6 @@ bool BranchProbabilityInfo::calcUnreachableHeuristics(BasicBlock *BB) { if (TI->getNumSuccessors() == 1 || UnreachableEdges.empty()) return false; - // If the terminator is an InvokeInst, check only the normal destination block - // as the unwind edge of InvokeInst is also very unlikely taken. - if (auto *II = dyn_cast<InvokeInst>(TI)) - if (PostDominatedByUnreachable.count(II->getNormalDest())) { - PostDominatedByUnreachable.insert(BB); - // Return false here so that edge weights for InvokeInst could be decided - // in calcInvokeHeuristics(). - return false; - } - uint32_t UnreachableWeight = std::max(UR_TAKEN_WEIGHT / (unsigned)UnreachableEdges.size(), MIN_WEIGHT); for (SmallVectorImpl<unsigned>::iterator I = UnreachableEdges.begin(), diff --git a/llvm/test/Analysis/BranchProbabilityInfo/noreturn.ll b/llvm/test/Analysis/BranchProbabilityInfo/noreturn.ll index 513818d8da6..63926370cda 100644 --- a/llvm/test/Analysis/BranchProbabilityInfo/noreturn.ll +++ b/llvm/test/Analysis/BranchProbabilityInfo/noreturn.ll @@ -77,48 +77,3 @@ abort: exit: ret i32 %b } - -@_ZTIi = external global i8* - -; CHECK-LABEL: throwSmallException -; CHECK-NOT: invoke i32 @smallFunction -define i32 @throwSmallException(i32 %idx, i32 %limit) #0 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { -entry: - %cmp = icmp sge i32 %idx, %limit - br i1 %cmp, label %if.then, label %if.end -; CHECK: edge entry -> if.then probability is 0x00000800 / 0x80000000 = 0.00% -; CHECK: edge entry -> if.end probability is 0x7ffff800 / 0x80000000 = 100.00% [HOT edge] - -if.then: ; preds = %entry - %exception = call i8* @__cxa_allocate_exception(i64 1) #0 - invoke i32 @smallFunction(i32 %idx) - to label %invoke.cont unwind label %lpad -; CHECK: edge if.then -> invoke.cont probability is 0x7ffff800 / 0x80000000 = 100.00% [HOT edge] -; CHECK: edge if.then -> lpad probability is 0x00000800 / 0x80000000 = 0.00% - -invoke.cont: ; preds = %if.then - call void @__cxa_throw(i8* %exception, i8* bitcast (i8** @_ZTIi to i8*), i8* null) #1 - unreachable - -lpad: ; preds = %if.then - %ll = landingpad { i8*, i32 } - cleanup - ret i32 %idx - -if.end: ; preds = %entry - ret i32 %idx -} - -@a = global i32 4 -define i32 @smallFunction(i32 %a) { -entry: - %r = load volatile i32, i32* @a - ret i32 %r -} - -attributes #0 = { nounwind } -attributes #1 = { noreturn } - -declare i8* @__cxa_allocate_exception(i64) -declare i32 @__gxx_personality_v0(...) -declare void @__cxa_throw(i8*, i8*, i8*) diff --git a/llvm/test/CodeGen/X86/catchret-empty-fallthrough.ll b/llvm/test/CodeGen/X86/catchret-empty-fallthrough.ll index 7ad10330317..5405d570b15 100644 --- a/llvm/test/CodeGen/X86/catchret-empty-fallthrough.ll +++ b/llvm/test/CodeGen/X86/catchret-empty-fallthrough.ll @@ -34,14 +34,12 @@ return: ; preds = %catch, %entry ; CHECK-LABEL: foo: # @foo ; CHECK: testb $1, %cl -; CHECK: je .LBB0_[[try:[0-9]+]] -; CHECK: .LBB0_[[return:[0-9]+]]: -; CHECK: retq -; CHECK: .LBB0_[[try]]: +; CHECK: jne .LBB0_[[return:[0-9]+]] ; CHECK: .Ltmp0: ; CHECK: callq bar ; CHECK: .Ltmp1: ; CHECK: .LBB0_[[catch:[0-9]+]]: +; CHECK: .LBB0_[[return]]: ; CHECK: .seh_handlerdata ; CHECK-NEXT: .Lfoo$parent_frame_offset = 32 |