summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/MergeFunc
diff options
context:
space:
mode:
authorVedant Kumar <vsk@apple.com>2019-01-17 00:29:14 +0000
committerVedant Kumar <vsk@apple.com>2019-01-17 00:29:14 +0000
commite21ab22115ae546eb72f293fe43d234bf1418fbb (patch)
tree4000650ba6c76f8583cb15b843cafe16e1544a52 /llvm/test/Transforms/MergeFunc
parent685565ae9a1782a090741a590d83b7cca33d010b (diff)
downloadbcm5719-llvm-e21ab22115ae546eb72f293fe43d234bf1418fbb.tar.gz
bcm5719-llvm-e21ab22115ae546eb72f293fe43d234bf1418fbb.zip
[FunctionComparator] Consider tail call kinds
Essentially, do not treat `call` and `musttail call` as the same thing. As a drive-by, fold CallInst and InvokeInst handling together using the CallSite helper. Differential Revision: https://reviews.llvm.org/D56815 llvm-svn: 351405
Diffstat (limited to 'llvm/test/Transforms/MergeFunc')
-rw-r--r--llvm/test/Transforms/MergeFunc/tailcall.ll21
1 files changed, 21 insertions, 0 deletions
diff --git a/llvm/test/Transforms/MergeFunc/tailcall.ll b/llvm/test/Transforms/MergeFunc/tailcall.ll
new file mode 100644
index 00000000000..8adf45ab2ff
--- /dev/null
+++ b/llvm/test/Transforms/MergeFunc/tailcall.ll
@@ -0,0 +1,21 @@
+; RUN: opt -mergefunc -S < %s | FileCheck %s
+
+declare void @dummy()
+
+; CHECK-LABEL: define{{.*}}@foo
+; CHECK: call {{.*}}@dummy
+; CHECK: musttail {{.*}}@dummy
+define void @foo() {
+ call void @dummy()
+ musttail call void @dummy()
+ ret void
+}
+
+; CHECK-LABEL: define{{.*}}@bar
+; CHECK: call {{.*}}@dummy
+; CHECK: call {{.*}}@dummy
+define void @bar() {
+ call void @dummy()
+ call void @dummy()
+ ret void
+}
OpenPOWER on IntegriCloud