forked from OSchip/llvm-project
[AMDGPU] Add isMeta flag to SCHED_GROUP_BARRIER
This commit is contained in:
parent
9f0d5330bd
commit
0f93a45b11
|
@ -232,8 +232,7 @@ bool SchedGroup::tryAddEdge(SUnit *A, SUnit *B) {
|
|||
|
||||
bool SchedGroup::canAddMI(const MachineInstr &MI) const {
|
||||
bool Result = false;
|
||||
if (MI.isMetaInstruction() || MI.getOpcode() == AMDGPU::SCHED_BARRIER ||
|
||||
MI.getOpcode() == AMDGPU::SCHED_GROUP_BARRIER)
|
||||
if (MI.isMetaInstruction())
|
||||
Result = false;
|
||||
|
||||
else if (((SGMask & SchedGroupMask::ALU) != SchedGroupMask::NONE) &&
|
||||
|
|
|
@ -341,6 +341,7 @@ def SCHED_GROUP_BARRIER : SPseudoInstSI<
|
|||
let isConvergent = 1;
|
||||
let FixedSize = 1;
|
||||
let Size = 0;
|
||||
let isMeta = 1;
|
||||
}
|
||||
|
||||
// SI pseudo instructions. These are used by the CFG structurizer pass
|
||||
|
|
|
@ -75,16 +75,16 @@ body: |
|
|||
; CHECK-NEXT: [[V_MFMA_F32_4X4X1F32_e64_4:%[0-9]+]]:areg_128 = V_MFMA_F32_4X4X1F32_e64 [[DEF1]], [[GLOBAL_LOAD_DWORD_SADDR]], [[V_MFMA_F32_4X4X1F32_e64_3]], 0, 0, 0, implicit $mode, implicit $exec
|
||||
; CHECK-NEXT: SCHED_GROUP_BARRIER 8, 5, 0
|
||||
; CHECK-NEXT: [[GLOBAL_LOAD_DWORD_SADDR1:%[0-9]+]]:vgpr_32 = GLOBAL_LOAD_DWORD_SADDR [[DEF]], [[DEF1]], 512, 0, implicit $exec :: (load (s32) from %ir.in, !alias.scope !0, addrspace 1)
|
||||
; CHECK-NEXT: S_NOP 0
|
||||
; CHECK-NEXT: SCHED_GROUP_BARRIER 32, 1, 0
|
||||
; CHECK-NEXT: [[V_MUL_LO_U32_e64_1:%[0-9]+]]:vgpr_32 = nsw V_MUL_LO_U32_e64 [[GLOBAL_LOAD_DWORD_SADDR]], [[DEF1]], implicit $exec
|
||||
; CHECK-NEXT: [[V_MUL_LO_U32_e64_2:%[0-9]+]]:vgpr_32 = nsw V_MUL_LO_U32_e64 [[GLOBAL_LOAD_DWORD_SADDR1]], [[GLOBAL_LOAD_DWORD_SADDR1]], implicit $exec
|
||||
; CHECK-NEXT: [[V_MUL_LO_U32_e64_3:%[0-9]+]]:vgpr_32 = nsw V_MUL_LO_U32_e64 [[GLOBAL_LOAD_DWORD_SADDR]], [[DEF1]], implicit $exec
|
||||
; CHECK-NEXT: [[V_MUL_LO_U32_e64_2:%[0-9]+]]:vgpr_32 = nsw V_MUL_LO_U32_e64 [[GLOBAL_LOAD_DWORD_SADDR]], [[DEF1]], implicit $exec
|
||||
; CHECK-NEXT: [[V_MUL_LO_U32_e64_3:%[0-9]+]]:vgpr_32 = nsw V_MUL_LO_U32_e64 [[GLOBAL_LOAD_DWORD_SADDR1]], [[GLOBAL_LOAD_DWORD_SADDR1]], implicit $exec
|
||||
; CHECK-NEXT: SCHED_GROUP_BARRIER 2, 3, 0
|
||||
; CHECK-NEXT: GLOBAL_STORE_DWORD_SADDR [[DEF1]], [[V_MUL_LO_U32_e64_]], [[DEF]], 0, 0, implicit $exec :: (store (s32) into %ir.out, !noalias !0, addrspace 1)
|
||||
; CHECK-NEXT: GLOBAL_STORE_DWORD_SADDR [[DEF1]], [[V_MUL_LO_U32_e64_2]], [[DEF]], 512, 0, implicit $exec :: (store (s32) into %ir.out, !noalias !0, addrspace 1)
|
||||
; CHECK-NEXT: S_NOP 0
|
||||
; CHECK-NEXT: GLOBAL_STORE_DWORD_SADDR [[DEF1]], [[V_MUL_LO_U32_e64_3]], [[DEF]], 512, 0, implicit $exec :: (store (s32) into %ir.out, !noalias !0, addrspace 1)
|
||||
; CHECK-NEXT: SCHED_GROUP_BARRIER 64, 2, 0
|
||||
; CHECK-NEXT: S_ENDPGM 0, implicit [[V_MUL_LO_U32_e64_1]], implicit [[V_MUL_LO_U32_e64_3]], implicit [[V_MFMA_F32_4X4X1F32_e64_4]]
|
||||
; CHECK-NEXT: S_ENDPGM 0, implicit [[V_MUL_LO_U32_e64_1]], implicit [[V_MUL_LO_U32_e64_2]], implicit [[V_MFMA_F32_4X4X1F32_e64_4]]
|
||||
%0:sreg_64 = IMPLICIT_DEF
|
||||
%1:vgpr_32 = IMPLICIT_DEF
|
||||
%2:areg_128 = IMPLICIT_DEF
|
||||
|
|
Loading…
Reference in New Issue