summaryrefslogtreecommitdiff
path: root/include/llvm/Intrinsics.td
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2011-04-05 01:37:43 +0000
committerBill Wendling <isanbard@gmail.com>2011-04-05 01:37:43 +0000
commitf05b1dcf870346094f8aaee8e387c92d3e47e98d (patch)
treec99e98f1172368733e3692beeb713426261f5a58 /include/llvm/Intrinsics.td
parent4fccc86237f6d1e79b0e1365442a53aad4419048 (diff)
downloadllvm-f05b1dcf870346094f8aaee8e387c92d3e47e98d.tar.gz
llvm-f05b1dcf870346094f8aaee8e387c92d3e47e98d.tar.bz2
llvm-f05b1dcf870346094f8aaee8e387c92d3e47e98d.tar.xz
Revamp the SjLj "dispatch setup" intrinsic.
It needed to be moved closer to the setjmp statement, because the code directly after the setjmp needs to know about values that are on the stack. Also, the 'bitcast' of the function context was causing a dead load. This wouldn't be too horrible, except that at -O0 it wasn't optimized out, and because it wasn't using the correct base pointer (if there is a VLA), it would try to access a value from a garbage address. <rdar://problem/9130540> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128873 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Intrinsics.td')
-rw-r--r--include/llvm/Intrinsics.td2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/llvm/Intrinsics.td b/include/llvm/Intrinsics.td
index ba66555c4e..d92ab4c92a 100644
--- a/include/llvm/Intrinsics.td
+++ b/include/llvm/Intrinsics.td
@@ -307,7 +307,7 @@ let Properties = [IntrNoMem] in {
def int_eh_sjlj_lsda : Intrinsic<[llvm_ptr_ty]>;
def int_eh_sjlj_callsite: Intrinsic<[], [llvm_i32_ty]>;
}
-def int_eh_sjlj_dispatch_setup : Intrinsic<[], [llvm_ptr_ty]>;
+def int_eh_sjlj_dispatch_setup : Intrinsic<[], []>;
def int_eh_sjlj_setjmp : Intrinsic<[llvm_i32_ty], [llvm_ptr_ty]>;
def int_eh_sjlj_longjmp : Intrinsic<[], [llvm_ptr_ty]>;