mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 04:02:41 +01:00
9de6b5b6de
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
26 lines
653 B
LLVM
26 lines
653 B
LLVM
; 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
|
|
}
|