From f7d5daa0c0b47351a66f7d12f35247636934e7aa Mon Sep 17 00:00:00 2001 From: Geoff Berry Date: Fri, 14 Jul 2017 20:13:21 +0000 Subject: [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 --- .../Transforms/EarlyCSE/globalsaa-memoryssa.ll | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 llvm/test/Transforms/EarlyCSE/globalsaa-memoryssa.ll (limited to 'llvm/test/Transforms/EarlyCSE') 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 +} -- cgit v1.2.3