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) {
|
EarlyTailDuplicate() : TailDuplicateBase(ID, true) {
|
||||||
initializeEarlyTailDuplicatePass(*PassRegistry::getPassRegistry());
|
initializeEarlyTailDuplicatePass(*PassRegistry::getPassRegistry());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MachineFunctionProperties getClearedProperties() const override {
|
||||||
|
return MachineFunctionProperties()
|
||||||
|
.set(MachineFunctionProperties::Property::NoPHIs);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
} // end anonymous namespace
|
} // 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