1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00
llvm-mirror/test/Transforms/NewGVN/verify-memoryphi.ll
Davide Italiano a3335b259b [NewGVN] Fix verification of MemoryPhis in verifyMemoryCongruency().
verifyMemoryCongruency() filters out trivially dead MemoryDef(s),
as we find them immediately dead, before moving from TOP to a new
congruence class.
This fixes the same problem for PHI(s) skipping MemoryPhis if all
the operands are dead.

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

llvm-svn: 303100
2017-05-15 18:50:53 +00:00

30 lines
695 B
LLVM

; Skip dead MemoryPhis when performing memory congruency verification
; in NewGVN.
; RUN: opt -S -newgvn %s | FileCheck %s
; REQUIRES: asserts
; CHECK: define void @tinkywinky() {
; CHECK-NEXT: entry:
; CHECK-NEXT: br i1 false, label %body, label %end
; CHECK: body:
; CHECK-NEXT: store i8 undef, i8* null
; CHECK-NEXT: br label %end
; CHECK: end:
; CHECK-NEXT: ret void
; CHECK-NEXT: }
declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture)
define void @tinkywinky() {
entry:
call void @llvm.lifetime.start.p0i8(i64 4, i8* undef)
br i1 false, label %body, label %end
body:
call void @llvm.lifetime.start.p0i8(i64 4, i8* undef)
br label %end
end:
ret void
}