summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-12-18 21:23:32 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-12-18 21:23:32 +0000
commit708a91a10366f0aa8f2b3912dd8e047ca1a66e5b (patch)
tree237dd728caae5ec779148bfa6276cd834e993feb
parent79753a07a6dc1f84099cea70aa8a8a369e909157 (diff)
downloadbcm5719-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.cpp10
-rw-r--r--llvm/test/Analysis/BranchProbabilityInfo/noreturn.ll45
-rw-r--r--llvm/test/CodeGen/X86/catchret-empty-fallthrough.ll6
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
OpenPOWER on IntegriCloud