summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2011-05-28 06:31:34 +0000
committerJohn McCall <rjmccall@apple.com>2011-05-28 06:31:34 +0000
commitbd0fa4c00d7870b1da36eac7b2181700381f2f96 (patch)
tree94141a5566eb6e3161e358be265493afbbd77081 /include
parentf46337004ab08076774932785679460ec3d3bb9a (diff)
downloadllvm-bd0fa4c00d7870b1da36eac7b2181700381f2f96.tar.gz
llvm-bd0fa4c00d7870b1da36eac7b2181700381f2f96.tar.bz2
llvm-bd0fa4c00d7870b1da36eac7b2181700381f2f96.tar.xz
Change how tblgen generates attributes for intrinsics to use a single
switch. With this newfound organization, teach tblgen how not to give all intrinsics the 'nounwind' attribute. Introduce a new intrinsic, llvm.eh.resume, which does not have this attribute. Documentation and uses to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132252 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Intrinsics.td4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/llvm/Intrinsics.td b/include/llvm/Intrinsics.td
index ba557cec25..d8f249a2c0 100644
--- a/include/llvm/Intrinsics.td
+++ b/include/llvm/Intrinsics.td
@@ -47,6 +47,9 @@ def IntrReadWriteArgMem : IntrinsicProperty;
// Commutative - This intrinsic is commutative: X op Y == Y op X.
def Commutative : IntrinsicProperty;
+// Throws - This intrinsic can throw.
+def Throws : IntrinsicProperty;
+
// NoCapture - The specified argument pointer is not captured by the intrinsic.
class NoCapture<int argNo> : IntrinsicProperty {
int ArgNo = argNo;
@@ -292,6 +295,7 @@ let Properties = [IntrNoMem] in {
def int_eh_exception : Intrinsic<[llvm_ptr_ty], [], [IntrReadMem]>;
def int_eh_selector : Intrinsic<[llvm_i32_ty],
[llvm_ptr_ty, llvm_ptr_ty, llvm_vararg_ty]>;
+def int_eh_resume : Intrinsic<[], [llvm_ptr_ty, llvm_i32_ty], [Throws]>;
def int_eh_typeid_for : Intrinsic<[llvm_i32_ty], [llvm_ptr_ty]>;