summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/EarlyCSE
diff options
context:
space:
mode:
authorGeoff Berry <gberry@codeaurora.org>2017-07-14 20:13:21 +0000
committerGeoff Berry <gberry@codeaurora.org>2017-07-14 20:13:21 +0000
commitf7d5daa0c0b47351a66f7d12f35247636934e7aa (patch)
treec18abfff022f62c23e0f7b742a36e38529e84534 /llvm/test/Transforms/EarlyCSE
parent476adcca6bfc63e1d04d240139a49ec7f68a8d8d (diff)
downloadbcm5719-llvm-f7d5daa0c0b47351a66f7d12f35247636934e7aa.tar.gz
bcm5719-llvm-f7d5daa0c0b47351a66f7d12f35247636934e7aa.zip
[EarlyCSE] Handle calls with no MemorySSA info.
Summary: When checking for memory dependencies between calls using MemorySSA, handle cases where the calls have no MemoryAccess associated with them because the AA analysis being used has determined that the call does not read/write memory. Fixes PR33756 Reviewers: dberlin, davide Subscribers: mcrosier, llvm-commits, Prazek Differential Revision: https://reviews.llvm.org/D35317 llvm-svn: 308051
Diffstat (limited to 'llvm/test/Transforms/EarlyCSE')
-rw-r--r--llvm/test/Transforms/EarlyCSE/globalsaa-memoryssa.ll25
1 files changed, 25 insertions, 0 deletions
diff --git a/llvm/test/Transforms/EarlyCSE/globalsaa-memoryssa.ll b/llvm/test/Transforms/EarlyCSE/globalsaa-memoryssa.ll
new file mode 100644
index 00000000000..57dbdd88319
--- /dev/null
+++ b/llvm/test/Transforms/EarlyCSE/globalsaa-memoryssa.ll
@@ -0,0 +1,25 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; RUN: opt < %s -S -globals-aa -early-cse-memssa | FileCheck %s
+
+define i16 @f1() readonly {
+ ret i16 0
+}
+
+declare void @f2()
+
+; Check that EarlyCSE correctly handles function calls that don't have
+; a MemoryAccess. In this case the calls to @f1 have no
+; MemoryAccesses since globals-aa determines that @f1 doesn't
+; read/write memory at all.
+
+define void @f3() {
+; CHECK-LABEL: @f3(
+; CHECK-NEXT: [[CALL1:%.*]] = call i16 @f1()
+; CHECK-NEXT: call void @f2()
+; CHECK-NEXT: ret void
+;
+ %call1 = call i16 @f1()
+ call void @f2()
+ %call2 = call i16 @f1()
+ ret void
+}
OpenPOWER on IntegriCloud