Skip to content

Commit 6069a55

Browse files
weiyu-chensys_zuul
authored and
sys_zuul
committed
More refactoring to use createMov() when possible.
Change-Id: I94d0c4c6a314f428af6b3220f3a3565db18baca7
1 parent 25c2e08 commit 6069a55

12 files changed

+98
-162
lines changed

visa/BuildIRImpl.cpp

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1206,17 +1206,12 @@ void IR_Builder::Create_MOVR0_Inst( G4_Declare* dcl, short regOff, short subregO
12061206
// create r0 src
12071207
G4_SrcRegRegion* r0_src_opnd = Create_Src_Opnd_From_Dcl(builtinR0, getRegionStride1());
12081208
// create inst
1209-
createInst(
1210-
NULL,
1211-
G4_mov,
1212-
NULL,
1213-
false,
1209+
createMov(
12141210
GENX_DATAPORT_IO_SZ,
12151211
dst1_opnd,
12161212
r0_src_opnd,
1217-
NULL,
12181213
( use_nomask ? InstOpt_WriteEnable : 0 ),
1219-
0 );
1214+
true );
12201215
}
12211216

12221217
void IR_Builder::Create_ADD_Inst(G4_Declare* dcl, short regOff, short subregOff, uint8_t execsize,
@@ -1422,18 +1417,12 @@ void IR_Builder::Create_MOV_Send_Src_Inst(
14221417
dst_dcl->getElemType());
14231418
}
14241419

1425-
// create inst
1426-
createInst(
1427-
NULL,
1428-
G4_mov,
1429-
NULL,
1430-
false,
1420+
createMov(
14311421
execsize,
14321422
dst,
14331423
src,
1434-
NULL,
14351424
option,
1436-
0 );
1425+
true );
14371426

14381427
// update offset in decl
14391428
if( remained_dword >= execsize ){
@@ -1895,10 +1884,10 @@ void IR_Builder::initBuiltinSLMSpillAddr(int perThreadSLMSize)
18951884
// (W) add (16) SLMSpillAddr:ud perThreadSLMStart<0;1,0>:ud immVec<8;8,1>:uw
18961885
G4_Imm* vec = createImm(0x76543210, Type_UV);
18971886
G4_DstRegRegion* dst = Create_Dst_Opnd_From_Dcl(builtinImmVector4, 1);
1898-
instBuffer.push_back(createInternalInst(nullptr, G4_mov, nullptr, false, 8, dst, vec, nullptr, InstOpt_WriteEnable));
1887+
instBuffer.push_back(createMov(8, dst, vec, InstOpt_WriteEnable, false));
18991888
vec = createImm(0xFEDCBA98, Type_UV);
19001889
dst = createDstRegRegion(Direct, builtinImmVector4->getRegVar(), 0, 8, 1, Type_UW);
1901-
instBuffer.push_back(createInternalInst(nullptr, G4_mov, nullptr, false, 8, dst, vec, nullptr, InstOpt_WriteEnable));
1890+
instBuffer.push_back(createMov(8, dst, vec, InstOpt_WriteEnable, false));
19021891
G4_SrcRegRegion* mulSrc = Create_Src_Opnd_From_Dcl(builtinImmVector4, getRegionStride1());
19031892
dst = Create_Dst_Opnd_From_Dcl(builtinImmVector4, 1);
19041893
instBuffer.push_back(createInst(nullptr, G4_mul, nullptr, false, 16, dst, mulSrc, createImm(4, Type_UW), InstOpt_WriteEnable));

visa/CFGStructurizer.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3478,12 +3478,10 @@ void CFGStructurizer::generateGotoJoin(G4_BB *gotoBB, G4_BB *jibBB, G4_BB *joinB
34783478
G4_Declare* tmpFlagDcl = CFG->builder->createTempFlag(numFlags);
34793479
G4_DstRegRegion* newPredDef = CFG->builder->createDstRegRegion(Direct, tmpFlagDcl->getRegVar(), 0, 0, 1,
34803480
numFlags == 2 ? Type_UD : Type_UW);
3481-
G4_INST *predInst = CFG->builder->createInternalInst(
3482-
NULL, G4_mov, NULL, false, 1,
3481+
G4_INST *predInst = CFG->builder->createMov(1,
34833482
newPredDef,
3484-
CFG->builder->createImm(0, Type_UW), NULL,
3485-
InstOpt_WriteEnable, gotoInst->getLineNo(),
3486-
gotoInst->getCISAOff(), gotoInst->getSrcFilename());
3483+
CFG->builder->createImm(0, Type_UW),
3484+
InstOpt_WriteEnable, false);
34873485
INST_LIST_ITER iter = gotoBB->end();
34883486
iter--;
34893487
gotoBB->insert(iter, predInst);

visa/FlowGraph.cpp

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -275,8 +275,7 @@ int64_t FlowGraph::insertDummyUUIDMov()
275275
G4_DstRegRegion* nullDst = builder->createNullDst(Type_UD);
276276
int64_t uuID = (int64_t)mt_rand();
277277
G4_Operand* randImm = (G4_Operand*)builder->createImm(uuID, Type_UD);
278-
G4_INST* movInst = builder->createInternalInst(nullptr, G4_mov, nullptr, false, 1,
279-
nullDst, randImm, nullptr, 0);
278+
G4_INST* movInst = builder->createMov(1, nullDst, randImm, InstOpt_NoOpt, false);
280279

281280
auto instItEnd = bb->end();
282281
for (auto it = bb->begin();
@@ -982,8 +981,8 @@ void IR_Builder::materializeGlobalImm(G4_BB* entryBB)
982981
{
983982
auto&& immVal = immPool.getImmVal(i);
984983
auto dcl = immPool.getImmDcl(i);
985-
G4_INST* inst = createInternalInst(nullptr, G4_mov, nullptr, false, immVal.numElt,
986-
Create_Dst_Opnd_From_Dcl(dcl, 1), immVal.imm, nullptr, InstOpt_WriteEnable);
984+
G4_INST* inst = createMov(immVal.numElt,
985+
Create_Dst_Opnd_From_Dcl(dcl, 1), immVal.imm, InstOpt_WriteEnable, false);
987986
auto iter = std::find_if(entryBB->begin(), entryBB->end(),
988987
[](G4_INST* inst) { return !inst->isLabel(); });
989988
entryBB->insert(iter, inst);
@@ -3012,9 +3011,8 @@ void FlowGraph::processGoto(bool HasSIMDCF)
30123011
uint8_t execSize = lastInst->getExecSize() > 16 ? 2 : 1;
30133012
G4_Declare* tmpFlagDcl = builder->createTempFlag(execSize);
30143013
G4_DstRegRegion* newPredDef = builder->createDstRegRegion(Direct, tmpFlagDcl->getRegVar(), 0, 0, 1, execSize == 2 ? Type_UD : Type_UW);
3015-
G4_INST *predInst = builder->createInternalInst(NULL, G4_mov, NULL, false, 1,
3016-
newPredDef, builder->createImm(0, Type_UW), NULL,
3017-
InstOpt_WriteEnable, lastInst->getLineNo(), lastInst->getCISAOff(), lastInst->getSrcFilename());
3014+
G4_INST *predInst = builder->createMov(1, newPredDef, builder->createImm(0, Type_UW),
3015+
InstOpt_WriteEnable, false);
30183016
INST_LIST_ITER iter = bb->end();
30193017
iter--;
30203018
bb->insert(iter, predInst);
@@ -3808,8 +3806,7 @@ void G4_BB::addEOTSend(G4_INST* lastInst)
38083806
G4_DstRegRegion* movDst = builder->Create_Dst_Opnd_From_Dcl(dcl, 1);
38093807
G4_SrcRegRegion* r0Src = builder->Create_Src_Opnd_From_Dcl(
38103808
builder->getBuiltinR0(), builder->getRegionStride1());
3811-
G4_INST *movInst = builder->createInternalInst(NULL, G4_mov, NULL, false, NUM_DWORDS_PER_GRF,
3812-
movDst, r0Src, NULL, InstOpt_WriteEnable, 0, lastInst ? lastInst->getCISAOff() : -1, 0);
3809+
G4_INST *movInst = builder->createMov(NUM_DWORDS_PER_GRF, movDst, r0Src, InstOpt_WriteEnable, false);
38133810
if (lastInst)
38143811
{
38153812
movInst->setLocation(lastInst->getLocation());

visa/GraphColor.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7784,9 +7784,8 @@ void VarSplit::insertMovesFromTemp(G4_Kernel& kernel, G4_Declare* oldDcl, int in
77847784
0,
77857785
kernel.fg.builder->getRegionStride1(),
77867786
oldSrc->getType());
7787-
G4_INST* movInst = kernel.fg.builder->createInternalInst(nullptr, G4_mov, nullptr, false,
7788-
(unsigned char)subDcl->getTotalElems(), dst, src, nullptr, InstOpt_WriteEnable,
7789-
inst->getLineNo(), inst->getCISAOff(), inst->getSrcFilename());
7787+
G4_INST* movInst = kernel.fg.builder->createMov(
7788+
(unsigned char)subDcl->getTotalElems(), dst, src, InstOpt_WriteEnable, false);
77907789
bb->insert(instIter, movInst);
77917790
}
77927791
}

visa/HWConformity.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7256,7 +7256,7 @@ void HWConformity::helperGenerateTempDst(
72567256
G4_SrcRegRegion *srcRegion = builder.Create_Src_Opnd_From_Dcl(dcl, region);
72577257

72587258
//creating a mov from temp dst to final destination using original options of fixed instruction
7259-
G4_INST* movInst = builder.createInst( NULL, G4_mov, NULL, false, execSize, dst, srcRegion, NULL, inst->getMaskOption() );
7259+
G4_INST* movInst = builder.createMov(execSize, dst, srcRegion, inst->getMaskOption(), false);
72607260

72617261
++instIter;
72627262
//inserting mov after fixed instruction

visa/Optimizer.cpp

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -437,29 +437,17 @@ void Optimizer::insertHashMovs()
437437

438438
G4_INST* lo;
439439
G4_INST* hi;
440-
lo = kernel.fg.builder->createInternalInst(
441-
NULL,
442-
G4_mov,
443-
NULL,
444-
false,
440+
lo = kernel.fg.builder->createMov(
445441
16,
446442
kernel.fg.builder->createNullDst(Type_UD),
447443
kernel.fg.builder->createImm((unsigned int)(hashVal & 0xffffffff), Type_UD),
448-
NULL,
449-
NULL,
450-
InstOpt_WriteEnable);
451-
452-
hi = kernel.fg.builder->createInternalInst(
453-
NULL,
454-
G4_mov,
455-
NULL,
456-
false,
444+
InstOpt_WriteEnable, false);
445+
446+
hi = kernel.fg.builder->createMov(
457447
16,
458448
kernel.fg.builder->createNullDst(Type_UD),
459449
kernel.fg.builder->createImm((unsigned int)((hashVal >> 32) & 0xffffffff), Type_UD),
460-
NULL,
461-
NULL,
462-
InstOpt_WriteEnable);
450+
InstOpt_WriteEnable, false);
463451

464452
bb->push_back(lo);
465453
bb->push_back(hi);

visa/SendFusion.cpp

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -906,8 +906,7 @@ void SendFusion::packPayload(
906906
Builder->getRegionStride1(), Ty);
907907
G4_DstRegRegion* D = Builder->createDstRegRegion(
908908
Direct, DVar, D_regoff, D_sregoff, 1, Ty);
909-
G4_INST* nInst = Builder->createInternalInst(
910-
NULL, G4_mov, NULL, false, ES, D, S, nullptr, option);
909+
G4_INST* nInst = Builder->createMov(ES, D, S, option, false);
911910
bb->insert(InsertBeforePos, nInst);
912911
return nInst;
913912
};
@@ -1104,8 +1103,7 @@ void SendFusion::unpackPayload(
11041103
Mod_src_undef, Direct, Payload, 2*i, 0, stride1, Ty);
11051104
D = Builder->createDstRegRegion(
11061105
Direct, Dst0, Off0 + i, 0, 1, Ty);
1107-
G4_INST* Inst0 = Builder->createInternalInst(
1108-
NULL, G4_mov, NULL, false, ExecSize, D, S, nullptr, option);
1106+
G4_INST* Inst0 = Builder->createMov(ExecSize, D, S, option, false);
11091107
bb->insert(InsertBeforePos, Inst0);
11101108

11111109
// Update DefUse
@@ -1122,8 +1120,7 @@ void SendFusion::unpackPayload(
11221120
(ExecSize == 8) ? 0 : ExecSize,
11231121
stride1, Ty);
11241122
D = Builder->createDstRegRegion(Direct, Dst1, Off1 + i, 0, 1, Ty);
1125-
G4_INST* Inst1 = Builder->createInternalInst(
1126-
NULL, G4_mov, NULL, false, ExecSize, D, S, nullptr, option);
1123+
G4_INST* Inst1 = Builder->createMov(ExecSize, D, S, option, false);
11271124
bb->insert(InsertBeforePos, Inst1);
11281125

11291126
// Update DefUse
@@ -1168,8 +1165,7 @@ void SendFusion::createDMask(G4_BB* bb, INST_LIST_ITER InsertBeforePos)
11681165
Mod_src_undef, Direct, sr0, 0, 2, Builder->getRegionScalar(), Type_UD);
11691166
G4_DstRegRegion* Dst = Builder->createDstRegRegion(
11701167
Direct, dmaskDecl->getRegVar(), 0, 0, 1, Type_UD);
1171-
G4_INST* Inst = Builder->createInternalInst(
1172-
NULL, G4_mov, NULL, false, 1, Dst, Src, NULL, InstOpt_WriteEnable);
1168+
G4_INST* Inst = Builder->createMov(1, Dst, Src, InstOpt_WriteEnable, false);
11731169
bb->insert(InsertBeforePos, Inst);
11741170

11751171
// update DefUse info
@@ -1190,8 +1186,7 @@ void SendFusion::createDMask(G4_BB* bb, INST_LIST_ITER InsertBeforePos)
11901186
Mod_src_undef, Direct, sr0, 0, 2, Builder->getRegionScalar(), Type_UD);
11911187
G4_DstRegRegion* D = Builder->createDstRegRegion(
11921188
Direct, dmaskDecl->getRegVar(), 0, 0, 1, Type_UD);
1193-
G4_INST* Inst = Builder->createInternalInst(
1194-
NULL, G4_mov, NULL, false, 1, D, S, NULL, InstOpt_WriteEnable);
1189+
G4_INST* Inst = Builder->createMov(1, D, S, InstOpt_WriteEnable, false);
11951190
BB->insert(InsertPos, Inst);
11961191
}
11971192
}
@@ -1230,8 +1225,8 @@ void SendFusion::createFlagPerBB(G4_BB* bb, INST_LIST_ITER InsertBeforePos)
12301225
// (W) mov (1|M0) WAce0:uw, 0
12311226
// cmp (16|M5) (eq)WAce0 r0:uw r0:uw
12321227
// (W) mov(1|M0) dstPixelMaskRgn:uw WAce0:uw
1233-
G4_INST* I0 = Builder->createInternalInst(NULL, G4_mov, NULL, false, 1, flag,
1234-
Builder->createImm(0, Type_UW), NULL, InstOpt_WriteEnable);
1228+
G4_INST* I0 = Builder->createMov(1, flag,
1229+
Builder->createImm(0, Type_UW), InstOpt_WriteEnable, false);
12351230
bb->insert(InsertBeforePos, I0);
12361231

12371232
G4_SrcRegRegion *r0_0 = Builder->createSrcRegRegion(
@@ -1255,8 +1250,7 @@ void SendFusion::createFlagPerBB(G4_BB* bb, INST_LIST_ITER InsertBeforePos)
12551250
Builder->getRegionScalar(), Type_UW);
12561251
G4_DstRegRegion* tmpDst1 = Builder->createDstRegRegion(
12571252
Direct, tmpDecl->getRegVar(), 0, 0, 1, Type_UW);
1258-
Inst0 = Builder->createInternalInst(NULL, G4_mov, NULL, false, 1, tmpDst1,
1259-
flagSrc, NULL, InstOpt_WriteEnable);
1253+
Inst0 = Builder->createMov( 1, tmpDst1, flagSrc, InstOpt_WriteEnable, false);
12601254
bb->insert(InsertBeforePos, Inst0);
12611255

12621256
// update DefUse
@@ -1285,8 +1279,7 @@ void SendFusion::createFlagPerBB(G4_BB* bb, INST_LIST_ITER InsertBeforePos)
12851279
Mod_src_undef, Direct, tmpUBDecl->getRegVar(), 0, 0, scalar, Type_UB);
12861280
G4_DstRegRegion* D = Builder->createDstRegRegion(
12871281
Direct, tmpUBDecl->getRegVar(), 0, 0, 1, Type_UB);
1288-
G4_INST* Inst1 = Builder->createInternalInst(
1289-
NULL, G4_mov, NULL, false, 2, D, S, nullptr, InstOpt_WriteEnable);
1282+
G4_INST* Inst1 = Builder->createMov(2, D, S, InstOpt_WriteEnable, false);
12901283
bb->insert(InsertBeforePos, Inst1);
12911284

12921285
// update DefUse
@@ -1299,8 +1292,7 @@ void SendFusion::createFlagPerBB(G4_BB* bb, INST_LIST_ITER InsertBeforePos)
12991292
Mod_src_undef, Direct, tmpUW->getRegVar(), 0, 0, scalar, Type_UW);
13001293
G4_DstRegRegion* flag = Builder->createDstRegRegion(
13011294
Direct, FlagPerBB, 0, 0, 1, Type_UW);
1302-
FlagDefPerBB = Builder->createInternalInst(
1303-
NULL, G4_mov, NULL, false, 1, flag, Src, nullptr, InstOpt_WriteEnable);
1295+
FlagDefPerBB = Builder->createMov(1, flag, Src, InstOpt_WriteEnable, false);
13041296
bb->insert(InsertBeforePos, FlagDefPerBB);
13051297

13061298
// update DefUse

visa/SpillCleanup.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,8 @@ void CoalesceSpillFills::copyToOldFills(G4_DstRegRegion* coalescedFillDst, std::
132132
G4_SrcRegRegion* src = kernel.fg.builder->createSrcRegRegion(Mod_src_undef, Direct,
133133
coalescedFillDst->getBase(), (short)REGISTER_ROW(offToUse), 0, kernel.fg.builder->getRegionStride1(), Type_UD);
134134

135-
G4_INST* copy = kernel.fg.builder->createInternalInst(nullptr, G4_mov, nullptr, false, (unsigned char)simdSize,
136-
movDst, src, nullptr, InstOpt_WriteEnable);
135+
G4_INST* copy = kernel.fg.builder->createMov((unsigned char)simdSize,
136+
movDst, src, InstOpt_WriteEnable, false);
137137
copy->setCISAOff(srcCISAOff);
138138

139139
bb->insert(f, copy);
@@ -1348,8 +1348,7 @@ void CoalesceSpillFills::fixSendsSrcOverlap()
13481348
kernel.fg.builder->getRegionStride1(), Type_UD);
13491349
G4_DstRegRegion* dstRgn = kernel.fg.builder->createDstRegRegion(
13501350
Direct, copyDcl->getRegVar(), REGISTER_ROW(row), 0, 1, Type_UD);
1351-
G4_INST* copyInst = kernel.fg.builder->createInternalInst(nullptr,
1352-
G4_mov, nullptr, false, 8, dstRgn, srcRgn, nullptr, InstOpt_WriteEnable);
1351+
G4_INST* copyInst = kernel.fg.builder->createMov(8, dstRgn, srcRgn, InstOpt_WriteEnable, false);
13531352
copyInst->setCISAOff(inst->getCISAOff());
13541353
bb->insert(instIt, copyInst);
13551354
elems -= 8;
@@ -1770,8 +1769,8 @@ void CoalesceSpillFills::spillFillCleanup()
17701769
src1Write->getBase(), REGISTER_ROW(diff) + src1Write->getRegOff(), 0,
17711770
kernel.fg.builder->getRegionStride1(), Type_UD);
17721771

1773-
G4_INST* mov = kernel.fg.builder->createInternalInst(nullptr, G4_mov, nullptr, false, (unsigned char)execSize,
1774-
nDst, nSrc, nullptr, InstOpt_WriteEnable);
1772+
G4_INST* mov = kernel.fg.builder->createMov((unsigned char)execSize,
1773+
nDst, nSrc, InstOpt_WriteEnable, false);
17751774
bb->insert(instIt, mov);
17761775
mov->setCISAOff(inst->getCISAOff());
17771776

visa/SpillCode.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,8 @@ void SpillManager::genRegMov(G4_BB* bb,
209209
useNoMask = true;
210210
}
211211
// mov (nRegs) a0.aOff<1> loc(0,locOff)<4;4,1>
212-
builder.createInst(NULL,G4_mov,NULL,false,(uint8_t) execSize,d,s,NULL,
213-
useNoMask ? InstOpt_WriteEnable : InstOpt_NoOpt);
212+
builder.createMov((uint8_t) execSize, d, s,
213+
useNoMask ? InstOpt_WriteEnable : InstOpt_NoOpt, true);
214214

215215
sSubRegOff += i;
216216
dSubRegOff += i;

0 commit comments

Comments
 (0)