summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2015-09-08 23:28:38 +0000
committerReid Kleckner <rnk@google.com>2015-09-08 23:28:38 +0000
commit51189f0a1d0b8b6d1490a4e42df4971916fb9235 (patch)
tree804c110f1c9172e760631974831c8fd1dd52a950 /llvm/test/CodeGen
parenta195adde001abe1b337a4455b8b8c80f340f8a2e (diff)
downloadbcm5719-llvm-51189f0a1d0b8b6d1490a4e42df4971916fb9235.tar.gz
bcm5719-llvm-51189f0a1d0b8b6d1490a4e42df4971916fb9235.zip
[WinEH] Avoid creating MBBs for LLVM BBs that cannot contain code
Typically these are catchpads, which hold data used to decide whether to catch the exception or continue unwinding. We also shouldn't create MBBs for catchendpads, cleanupendpads, or terminatepads, since no real code can live in them. This fixes a problem where MI passes (like the register allocator) would try to put code into catchpad blocks, which are not executed by the runtime. In the new world, blocks ending in invokes now have many possible successors. llvm-svn: 247102
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r--llvm/test/CodeGen/X86/win-catchpad.ll6
1 files changed, 0 insertions, 6 deletions
diff --git a/llvm/test/CodeGen/X86/win-catchpad.ll b/llvm/test/CodeGen/X86/win-catchpad.ll
index 7ab59ab7223..12a58be6dea 100644
--- a/llvm/test/CodeGen/X86/win-catchpad.ll
+++ b/llvm/test/CodeGen/X86/win-catchpad.ll
@@ -29,7 +29,6 @@ $"\01??_R0H@8" = comdat any
declare void @f(i32 %p, i32* %l)
declare i32 @__CxxFrameHandler3(...)
-declare void @barrier()
define i32 @try_catch_catch() personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*) {
entry:
@@ -42,10 +41,6 @@ catch.dispatch: ; preds = %entry
to label %catch unwind label %catch.dispatch.2
catch: ; preds = %catch.dispatch
- ; FIXME: Remove this barrier once we add more real register allocation barriers.
- invoke void @barrier()
- to label %barrier.split unwind label %catchendblock
-barrier.split:
invoke void @f(i32 2, i32* %local)
to label %invoke.cont.2 unwind label %catchendblock
@@ -83,7 +78,6 @@ catchendblock: ; preds = %catch, %catch.2, %c
; X86: [[catch1bb:LBB0_[0-9]+]]: # %catch{{$}}
; X86: addl $12, %ebp
; X86: subl $8, %esp
-; X86: calll _barrier
; X86: movl $1, -{{[0-9]+}}(%ebp)
; X86: leal -[[local_offs]](%ebp), %[[addr_reg:[a-z]+]]
; X86-DAG: movl %[[addr_reg]], 4(%esp)
OpenPOWER on IntegriCloud