diff options
| author | Johannes Doerfert <jdoerfert@anl.gov> | 2019-06-27 19:29:48 +0000 |
|---|---|---|
| committer | Johannes Doerfert <jdoerfert@anl.gov> | 2019-06-27 19:29:48 +0000 |
| commit | 6ed459fd41c8ff3ccf1b0a4ac5416fba39f1856a (patch) | |
| tree | 228a3552d37ff1d32bda47b5125c87a5bff45566 /llvm/unittests | |
| parent | 1cf9e72cbc019bd33771900f349d1fc651d682be (diff) | |
| download | bcm5719-llvm-6ed459fd41c8ff3ccf1b0a4ac5416fba39f1856a.tar.gz bcm5719-llvm-6ed459fd41c8ff3ccf1b0a4ac5416fba39f1856a.zip | |
Use "willreturn" in isGuaranteedToTransferExecutionToSuccessor
The `willreturn` function attribute guarantees that a function call will
come back to the call site if the call is also known not to throw.
Therefore, this attribute can be used in
`isGuaranteedToTransferExecutionToSuccessor`.
Patch by Hideto Ueno (@uenoku)
Reviewers: jdoerfert, sstefan1
Reviewed By: jdoerfert
Subscribers: hiraditya, jfb, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D63372
llvm-svn: 364580
Diffstat (limited to 'llvm/unittests')
| -rw-r--r-- | llvm/unittests/Analysis/ValueTrackingTest.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/unittests/Analysis/ValueTrackingTest.cpp b/llvm/unittests/Analysis/ValueTrackingTest.cpp index df32287dbff..fbb07a9ac11 100644 --- a/llvm/unittests/Analysis/ValueTrackingTest.cpp +++ b/llvm/unittests/Analysis/ValueTrackingTest.cpp @@ -464,6 +464,7 @@ TEST(ValueTracking, GuaranteedToTransferExecutionToSuccessor) { "declare void @nounwind_argmemonly(i32*) nounwind argmemonly " "declare void @throws_but_readonly(i32*) readonly " "declare void @throws_but_argmemonly(i32*) argmemonly " + "declare void @nounwind_willreturn(i32*) nounwind willreturn" " " "declare void @unknown(i32*) " " " @@ -476,6 +477,7 @@ TEST(ValueTracking, GuaranteedToTransferExecutionToSuccessor) { " call void @unknown(i32* %p) nounwind argmemonly " " call void @unknown(i32* %p) readonly " " call void @unknown(i32* %p) argmemonly " + " call void @nounwind_willreturn(i32* %p)" " ret void " "} "; @@ -497,6 +499,7 @@ TEST(ValueTracking, GuaranteedToTransferExecutionToSuccessor) { true, // call void @unknown(i32* %p) nounwind argmemonly false, // call void @unknown(i32* %p) readonly false, // call void @unknown(i32* %p) argmemonly + true, // call void @nounwind_willreturn(i32* %p) false, // ret void }; |

