diff options
| author | Geoff Berry <gberry@codeaurora.org> | 2017-07-14 20:13:21 +0000 | 
|---|---|---|
| committer | Geoff Berry <gberry@codeaurora.org> | 2017-07-14 20:13:21 +0000 | 
| commit | f7d5daa0c0b47351a66f7d12f35247636934e7aa (patch) | |
| tree | c18abfff022f62c23e0f7b742a36e38529e84534 /llvm/test/Transforms/EarlyCSE | |
| parent | 476adcca6bfc63e1d04d240139a49ec7f68a8d8d (diff) | |
| download | bcm5719-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.ll | 25 | 
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 +}  | 

