mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
d07051a045
This is a workaround and it would be better to fix this generally, but doing it generally is quite tricky. See D48541 and PR38117. Doing it in PredicateInfo directly allows us to use the type address to differentiate different unnamed types, because neither the created declarations nor the ssa_copy calls should be visible after PredicateInfo got destroyed. Reviewers: efriedma, davide Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D49126 llvm-svn: 337828
40 lines
1.5 KiB
LLVM
40 lines
1.5 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
|
; REQUIRES: asserts
|
|
; RUN: opt -debug-counter=predicateinfo-rename-skip=1,predicateinfo-rename-count=1 -print-predicateinfo -analyze < %s 2>&1 | FileCheck %s
|
|
;; Test that, with debug counters on, we don't rename the first info, only the second
|
|
define fastcc void @barney() {
|
|
; CHECK-LABEL: @barney(
|
|
; CHECK-NEXT: bb:
|
|
; CHECK-NEXT: br label [[BB22:%.*]]
|
|
; CHECK: bb22:
|
|
; CHECK-NEXT: [[TMP23:%.*]] = icmp eq i32 undef, 2
|
|
; CHECK: [[TMP23_0:%.*]] = call i1 @llvm.ssa.copy.{{.+}}(i1 [[TMP23]])
|
|
; CHECK-NEXT: br i1 [[TMP23]], label [[BB29:%.*]], label [[BB35:%.*]]
|
|
; CHECK: bb29:
|
|
; CHECK: [[TMP23_0_1:%.*]] = call i1 @llvm.ssa.copy.{{.+}}(i1 [[TMP23_0]])
|
|
; CHECK-NEXT: br i1 [[TMP23]], label [[BB33:%.*]], label [[BB35]]
|
|
; CHECK: bb33:
|
|
; CHECK-NEXT: br i1 [[TMP23_0_1]], label [[BB35]], label [[BB35]]
|
|
; CHECK: bb35:
|
|
; CHECK-NEXT: unreachable
|
|
;
|
|
bb:
|
|
br label %bb22
|
|
bb22: ; preds = %bb21
|
|
%tmp23 = icmp eq i32 undef, 2
|
|
br i1 %tmp23, label %bb29, label %bb35
|
|
|
|
|
|
bb29: ; preds = %bb28
|
|
;; We will not rename this one (we will still generate a copy of a copy for the next one)
|
|
br i1 %tmp23, label %bb33, label %bb35
|
|
|
|
|
|
bb33: ; preds = %bb31
|
|
;; We will rename this one
|
|
br i1 %tmp23, label %bb35, label %bb35
|
|
|
|
bb35: ; preds = %bb33, %bb29, %bb22
|
|
unreachable
|
|
}
|