diff options
author | Duncan Sands <baldrick@free.fr> | 2011-09-07 16:44:14 +0000 |
---|---|---|
committer | Duncan Sands <baldrick@free.fr> | 2011-09-07 16:44:14 +0000 |
commit | 758ba1f4edfe2a2876c91022f921180a6dbece01 (patch) | |
tree | f5198473b91cad471e497168df96b7e8908453e5 /include/llvm/Intrinsics.td | |
parent | ffa5a763444e456cee17442af603fb4ef0843bb4 (diff) | |
download | external_llvm-758ba1f4edfe2a2876c91022f921180a6dbece01.zip external_llvm-758ba1f4edfe2a2876c91022f921180a6dbece01.tar.gz external_llvm-758ba1f4edfe2a2876c91022f921180a6dbece01.tar.bz2 |
When inlining exception handling code into another function, ensure that
duplicate tests are eliminated (for example if the two functions both have
a catch clause catching the same type, ensure the redundant one is removed).
Note that it would probably be safe to say that eh.typeid.for is 'const',
but since two calls to it with the same argument can give different results
(but only if the calls are in different functions), it seems more correct to
mark it only 'pure'; this doesn't get in the way of the optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139236 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Intrinsics.td')
-rw-r--r-- | include/llvm/Intrinsics.td | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/llvm/Intrinsics.td b/include/llvm/Intrinsics.td index 7646eaa..b7b4e7c 100644 --- a/include/llvm/Intrinsics.td +++ b/include/llvm/Intrinsics.td @@ -309,7 +309,7 @@ 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]>; +def int_eh_typeid_for : Intrinsic<[llvm_i32_ty], [llvm_ptr_ty], [IntrReadMem]>; def int_eh_return_i32 : Intrinsic<[], [llvm_i32_ty, llvm_ptr_ty]>; def int_eh_return_i64 : Intrinsic<[], [llvm_i64_ty, llvm_ptr_ty]>; |