Skip to content

Commit 7cb4cea

Browse files
bcheng0127igcbot
authored andcommitted
RSWA:add extra mov so that there is no need to resever r0
1 parent 4c76b9c commit 7cb4cea

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

visa/Optimizer.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,16 @@ void Optimizer::insertDummyMad(G4_BB* bb, INST_LIST_ITER inst_it)
380380

381381
bb->insertBefore(inst_it, madInst1);
382382
bb->insertBefore(inst_it, madInst2);
383+
384+
if (!(kernel.getKernelType() != VISA_3D ||
385+
kernel.getOption(vISA_enablePreemption) ||
386+
kernel.getOption(vISA_ReserveR0)))
387+
{
388+
G4_SrcRegRegion* src = kernel.fg.builder->Create_Src_Opnd_From_Dcl(src0Dcl_0, region);
389+
G4_DstRegRegion* dst = kernel.fg.builder->Create_Dst_Opnd_From_Dcl(src0Dcl_0, 1);
390+
G4_INST* movInst = builder.createMov(g4::SIMD1, dst, src, InstOpt_WriteEnable, false);
391+
bb->insertBefore(inst_it, movInst);
392+
}
383393
}
384394

385395
void Optimizer::insertDummyMov(G4_BB *bb, INST_LIST_ITER inst_it, G4_Operand *opnd)

visa/PhyRegUsage.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1253,8 +1253,7 @@ void getForbiddenGRFs(vector<unsigned int>& regNum, G4_Kernel &kernel, unsigned
12531253
kernel.getOption(vISA_enablePreemption) ||
12541254
reserveSpillSize > 0 ||
12551255
stackCallRegSize > 0 ||
1256-
kernel.getOption(vISA_ReserveR0) ||
1257-
kernel.getOption(vISA_InsertDummyMovForHWRSWA))
1256+
kernel.getOption(vISA_ReserveR0))
12581257
{
12591258
regNum.push_back(0);
12601259
}

0 commit comments

Comments
 (0)