mirror of
https://github.com/RPCSX/llvm.git
synced 2025-01-07 04:21:27 +00:00
783607f8e8
Add support for the new pass manager to MemorySSA pass. Change MemorySSA to be computed eagerly upon construction. Change MemorySSAWalker to be owned by the MemorySSA object that creates it. Reviewers: dberlin, george.burgess.iv Subscribers: mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D19664 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@271432 91177308-0d34-0410-b5e6-96231b3b80d8
20 lines
610 B
LLVM
20 lines
610 B
LLVM
; RUN: opt -basicaa -memoryssa -analyze < %s 2>&1 | FileCheck %s
|
|
; RUN: opt -aa-pipeline=basic-aa -passes='print<memoryssa>,verify<memoryssa>' -disable-output < %s 2>&1 | FileCheck %s
|
|
;
|
|
; Ensures that assumes are treated as not reading or writing memory.
|
|
|
|
declare void @llvm.assume(i1)
|
|
|
|
define i32 @foo(i32* %a, i32* %b, i1 %c) {
|
|
; CHECK: 1 = MemoryDef(liveOnEntry)
|
|
; CHECK-NEXT: store i32 4
|
|
store i32 4, i32* %a, align 4
|
|
; CHECK-NOT: MemoryDef
|
|
; CHECK: call void @llvm.assume
|
|
call void @llvm.assume(i1 %c)
|
|
; CHECK: MemoryUse(1)
|
|
; CHECK-NEXT: %1 = load i32
|
|
%1 = load i32, i32* %a, align 4
|
|
ret i32 %1
|
|
}
|