Files
clang-p2996/llvm/test/Transforms/EarlyCSE/writeonly.ll
Yevgeny Rouban 5e5af533ab [IR] Fix mayReadFromMemory() for writeonly calls
Current implementation of Instruction::mayReadFromMemory()
returns !doesNotAccessMemory() which is !ReadNone. This
does not take into account that the writeonly attribute
also indicates that the call does not read from memory.

The patch changes the predicate to !doesNotReadMemory()
that reflects the intended behavior.

Differential Revision: https://reviews.llvm.org/D69086

llvm-svn: 375389
2019-10-21 06:52:08 +00:00

16 lines
313 B
LLVM

; RUN: opt -S -early-cse < %s | FileCheck %s
@var = global i32 undef
declare void @foo() nounwind
define void @test() {
; CHECK-LABEL: @test(
; CHECK-NOT: store
store i32 1, i32* @var
; CHECK: call void @foo()
call void @foo() writeonly
; CHECK: store i32 2, i32* @var
store i32 2, i32* @var
ret void
}