forked from OSchip/llvm-project
Really fix the fall-through logic.
Add a triple to the tests. llvm-svn: 132885
This commit is contained in:
parent
cb55e752ed
commit
2f3c2fe7c5
|
@ -1941,6 +1941,9 @@ isBlockOnlyReachableByFallthrough(const MachineBasicBlock *MBB) const {
|
|||
if (TII->AnalyzeBranch(*Pred, PredTBB, PredFBB, PredCond))
|
||||
return false;
|
||||
|
||||
if (PredTBB == MBB || PredFBB == MBB)
|
||||
return false;
|
||||
|
||||
// This is a fall through if there is no conditions in the bb
|
||||
// or if there is no explicit false branch.
|
||||
return PredCond.empty() || !PredFBB;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: llc -O0 < %s | FileCheck %s
|
||||
; RUN: llc -mtriple=x86_64-apple-darwin10 -O0 < %s | FileCheck %s
|
||||
|
||||
; test that we print a label that we use. We had a bug where
|
||||
; we would print the jump, but not the label because it was considered
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
; RUN: llc -mtriple=x86_64-apple-darwin10 -O0 < %s | FileCheck %s
|
||||
|
||||
; test that we print a label that we use. We had a bug where
|
||||
; we would print the jump, but not the label because it was considered
|
||||
; a fall through.
|
||||
|
||||
; CHECK: jmp LBB0_1
|
||||
; CHECK: LBB0_1:
|
||||
|
||||
define void @foobar() {
|
||||
entry:
|
||||
invoke void @_zed()
|
||||
to label %invoke.cont unwind label %lpad
|
||||
|
||||
invoke.cont: ; preds = %entry
|
||||
ret void
|
||||
|
||||
lpad: ; preds = %entry
|
||||
unreachable
|
||||
}
|
||||
|
||||
declare void @_zed() ssp align 2
|
Loading…
Reference in New Issue