1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 20:23:11 +01:00
llvm-mirror/test/Analysis/MemorySSA/unreachable.ll
Alina Sbirlea 4d359fab94 [MemorySSA] Add additional verification for phis.
Summary:
Verify that the incoming defs into phis are the last defs from the
respective incoming blocks.
When moving blocks, insertDef must RenameUses. Adding this verification
makes GVNHoist tests fail that uncovered this issue.

Reviewers: george.burgess.iv

Subscribers: jlebar, Prazek, llvm-commits

Tags: #llvm

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

llvm-svn: 367451
2019-07-31 17:41:04 +00:00

32 lines
932 B
LLVM

; RUN: opt -licm -enable-mssa-loop-dependency -verify-memoryssa %s -S | FileCheck %s
; REQUIRES: asserts
; Ensure verification doesn't fail with unreachable blocks.
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-grtev4-linux-gnu"
declare dso_local void @f()
; CHECK-LABEL: @foo
define dso_local void @foo() {
entry:
br i1 undef, label %if.then, label %if.end
if.then: ; preds = %entry
br label %try.cont
if.end: ; preds = %entry
; 1 = MemoryDef(liveOnEntry)
call void @f()
br label %try.cont
catch: ; No predecessors!
; 2 = MemoryDef(liveOnEntry)
call void @f()
br label %try.cont
try.cont: ; preds = %if.end, %catch, %if.then
; 3 = MemoryPhi({if.then,liveOnEntry},{if.end,1},{catch,liveOnEntry})
ret void
}