mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-10-16 12:24:44 +00:00
Really fix the fall-through logic.
Add a triple to the tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132885 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c1e903ceb3
commit
1edc08b09f
@ -1941,6 +1941,9 @@ isBlockOnlyReachableByFallthrough(const MachineBasicBlock *MBB) const {
|
|||||||
if (TII->AnalyzeBranch(*Pred, PredTBB, PredFBB, PredCond))
|
if (TII->AnalyzeBranch(*Pred, PredTBB, PredFBB, PredCond))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (PredTBB == MBB || PredFBB == MBB)
|
||||||
|
return false;
|
||||||
|
|
||||||
// This is a fall through if there is no conditions in the bb
|
// This is a fall through if there is no conditions in the bb
|
||||||
// or if there is no explicit false branch.
|
// or if there is no explicit false branch.
|
||||||
return PredCond.empty() || !PredFBB;
|
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
|
; 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
|
; we would print the jump, but not the label because it was considered
|
||||||
|
22
test/CodeGen/X86/asm-label2.ll
Normal file
22
test/CodeGen/X86/asm-label2.ll
Normal file
@ -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
Block a user