diff options
| author | Reid Kleckner <rnk@google.com> | 2015-09-08 23:28:38 +0000 |
|---|---|---|
| committer | Reid Kleckner <rnk@google.com> | 2015-09-08 23:28:38 +0000 |
| commit | 51189f0a1d0b8b6d1490a4e42df4971916fb9235 (patch) | |
| tree | 804c110f1c9172e760631974831c8fd1dd52a950 /llvm/test/CodeGen | |
| parent | a195adde001abe1b337a4455b8b8c80f340f8a2e (diff) | |
| download | bcm5719-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.ll | 6 |
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) |

