diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2011-06-12 05:57:01 +0000 | 
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2011-06-12 05:57:01 +0000 | 
| commit | 2f3c2fe7c5aa34d5a62ed9e3715e609816e2486f (patch) | |
| tree | abd15de564d996e0c2cb04587e1015314c29df9e | |
| parent | cb55e752edca7116d79d348ce48cc931e0c515f2 (diff) | |
| download | bcm5719-llvm-2f3c2fe7c5aa34d5a62ed9e3715e609816e2486f.tar.gz bcm5719-llvm-2f3c2fe7c5aa34d5a62ed9e3715e609816e2486f.zip | |
Really fix the fall-through logic.
Add a triple to the tests.
llvm-svn: 132885
| -rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 3 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/asm-label.ll | 2 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/asm-label2.ll | 22 | 
3 files changed, 26 insertions, 1 deletions
| diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index 00f3501fcf7..f324148cea4 100644 --- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -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; diff --git a/llvm/test/CodeGen/X86/asm-label.ll b/llvm/test/CodeGen/X86/asm-label.ll index 0c227b1b94d..1fc6e2eaf2b 100644 --- a/llvm/test/CodeGen/X86/asm-label.ll +++ b/llvm/test/CodeGen/X86/asm-label.ll @@ -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 diff --git a/llvm/test/CodeGen/X86/asm-label2.ll b/llvm/test/CodeGen/X86/asm-label2.ll new file mode 100644 index 00000000000..0b5de3403f3 --- /dev/null +++ b/llvm/test/CodeGen/X86/asm-label2.ll @@ -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 | 

