summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDuncan Sands <baldrick@free.fr>2011-09-07 16:44:14 +0000
committerDuncan Sands <baldrick@free.fr>2011-09-07 16:44:14 +0000
commit758ba1f4edfe2a2876c91022f921180a6dbece01 (patch)
treef5198473b91cad471e497168df96b7e8908453e5 /include
parentffa5a763444e456cee17442af603fb4ef0843bb4 (diff)
downloadllvm-758ba1f4edfe2a2876c91022f921180a6dbece01.tar.gz
llvm-758ba1f4edfe2a2876c91022f921180a6dbece01.tar.bz2
llvm-758ba1f4edfe2a2876c91022f921180a6dbece01.tar.xz
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')
-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 7646eaaf67..b7b4e7cc06 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]>;