mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 20:23:11 +01:00
4d359fab94
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
32 lines
932 B
LLVM
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
|
|
}
|