diff options
| author | John McCall <rjmccall@apple.com> | 2011-05-28 06:31:34 +0000 |
|---|---|---|
| committer | John McCall <rjmccall@apple.com> | 2011-05-28 06:31:34 +0000 |
| commit | 375dcc9ec9d6000b3c6436b2fbe66b876251f1cf (patch) | |
| tree | 3b071e201bb581e1a11efb336c2ff073b8bb47fb /llvm/include | |
| parent | 5638b9f01e145c9dfbf96698bc6d05a38358595d (diff) | |
| download | bcm5719-llvm-375dcc9ec9d6000b3c6436b2fbe66b876251f1cf.tar.gz bcm5719-llvm-375dcc9ec9d6000b3c6436b2fbe66b876251f1cf.zip | |
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.
llvm-svn: 132252
Diffstat (limited to 'llvm/include')
| -rw-r--r-- | llvm/include/llvm/Intrinsics.td | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/include/llvm/Intrinsics.td b/llvm/include/llvm/Intrinsics.td index ba557cec251..d8f249a2c0b 100644 --- a/llvm/include/llvm/Intrinsics.td +++ b/llvm/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]>; |

