forked from OSchip/llvm-project
TailDuplication: Clear NoPHIs property
The early tail duplicator pass introduces new ones, so a MIR test that infers no phis since there were none on the input would fail the verifier after running.
This commit is contained in:
parent
780d30660e
commit
3213ce966b
|
@ -60,6 +60,11 @@ public:
|
|||
EarlyTailDuplicate() : TailDuplicateBase(ID, true) {
|
||||
initializeEarlyTailDuplicatePass(*PassRegistry::getPassRegistry());
|
||||
}
|
||||
|
||||
MachineFunctionProperties getClearedProperties() const override {
|
||||
return MachineFunctionProperties()
|
||||
.set(MachineFunctionProperties::Property::NoPHIs);
|
||||
}
|
||||
};
|
||||
|
||||
} // end anonymous namespace
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
|
||||
# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx900 -run-pass=early-tailduplication -verify-machineinstrs -o - %s | FileCheck %s
|
||||
|
||||
# There are no phis in this testcase. Early tail duplication introduces them,
|
||||
# so the NoPHIs property needs to be cleared to avoid verifier errors
|
||||
|
||||
---
|
||||
name: tail_duplicate_nophis
|
||||
tracksRegLiveness: true
|
||||
body: |
|
||||
; CHECK-LABEL: name: tail_duplicate_nophis
|
||||
; CHECK: bb.0:
|
||||
; CHECK: successors: %bb.3(0x80000000)
|
||||
; CHECK: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 0
|
||||
; CHECK: S_BRANCH %bb.3
|
||||
; CHECK: bb.2:
|
||||
; CHECK: successors: %bb.3(0x80000000)
|
||||
; CHECK: [[DEF:%[0-9]+]]:sreg_32 = IMPLICIT_DEF
|
||||
; CHECK: S_SLEEP 9
|
||||
; CHECK: bb.3:
|
||||
; CHECK: successors: %bb.3(0x80000000)
|
||||
; CHECK: [[PHI:%[0-9]+]]:sreg_32 = PHI [[DEF]], %bb.2, %1, %bb.3, [[S_MOV_B32_]], %bb.0
|
||||
; CHECK: S_NOP 0, implicit [[PHI]]
|
||||
; CHECK: S_SLEEP 1
|
||||
; CHECK: [[S_MOV_B32_1:%[0-9]+]]:sreg_32 = S_MOV_B32 0
|
||||
; CHECK: S_BRANCH %bb.3
|
||||
bb.1:
|
||||
|
||||
bb.2:
|
||||
%5:sreg_32 = S_MOV_B32 0
|
||||
S_BRANCH %bb.4
|
||||
|
||||
bb.3:
|
||||
S_SLEEP 9
|
||||
|
||||
bb.4:
|
||||
S_NOP 0, implicit %5
|
||||
S_SLEEP 1
|
||||
S_BRANCH %bb.2
|
||||
|
||||
...
|
Loading…
Reference in New Issue