@@ -2081,7 +2081,7 @@ G4_INST* SWSB::insertSyncAllWRInstruction(G4_BB* bb, unsigned int SBIDs, INST_LI
2081
2081
return syncInst;
2082
2082
}
2083
2083
2084
- bool SWSB::insertSyncToken (G4_BB * bb, SBNode * node, G4_INST * inst, INST_LIST_ITER inst_it, int newInstID, BitSet * dstTokens, BitSet * srcTokens, bool removeAllToken)
2084
+ void SWSB::insertSyncToken (G4_BB* bb, SBNode* node, G4_INST* inst, INST_LIST_ITER inst_it, int newInstID, BitSet* dstTokens, BitSet* srcTokens, bool removeAllToken)
2085
2085
{
2086
2086
// Non-test instruction can only have
2087
2087
// 1. non-send: one Dst Token with distance, or
@@ -2097,8 +2097,6 @@ bool SWSB::insertSyncToken(G4_BB *bb, SBNode *node, G4_INST *inst, INST_LIST_ITE
2097
2097
unsigned short dstToken = (unsigned short )-1 ;
2098
2098
unsigned short srcToken = (unsigned short )-1 ;
2099
2099
SWSBTokenType type = G4_INST::SWSBTokenType::TOKEN_NONE;
2100
- bool insertedSync = false ;
2101
-
2102
2100
for (unsigned int i = 0 ; i < node->GetInstruction ()->getDepTokenNum ();)
2103
2101
{
2104
2102
G4_INST* synAllInst = nullptr ;
@@ -2214,7 +2212,6 @@ bool SWSB::insertSyncToken(G4_BB *bb, SBNode *node, G4_INST *inst, INST_LIST_ITE
2214
2212
synInst->setDepToken (dstToken, SWSBTokenType::AFTER_WRITE);
2215
2213
}
2216
2214
synInst->setLexicalId (newInstID);
2217
- insertedSync = true ;
2218
2215
}
2219
2216
2220
2217
if (src)
@@ -2233,31 +2230,23 @@ bool SWSB::insertSyncToken(G4_BB *bb, SBNode *node, G4_INST *inst, INST_LIST_ITE
2233
2230
synInst->setDepToken (srcToken, SWSBTokenType::AFTER_READ);
2234
2231
}
2235
2232
synInst->setLexicalId (newInstID);
2236
- insertedSync = true ;
2237
2233
}
2238
2234
2239
- return insertedSync ;
2235
+ return ;
2240
2236
}
2241
2237
2242
2238
2243
2239
void SWSB::insertSync (G4_BB* bb, SBNode* node, G4_INST* inst, INST_LIST_ITER inst_it, int newInstID, BitSet* dstTokens, BitSet* srcTokens, bool hasDistOneAreg)
2244
2240
{
2245
- bool insertedSync = false ;
2246
- INST_LIST_ITER prevIt = inst_it;
2241
+ G4_INST* syncInst = nullptr ;
2247
2242
if (hasDistOneAreg)
2248
2243
{
2249
- prevIt--;
2250
- }
2251
-
2252
- {
2253
- insertedSync = insertSyncToken (bb, node, inst, inst_it, newInstID, dstTokens, srcTokens, false );
2244
+ syncInst = insertSyncInstructionAfter (bb, inst_it, inst->getCISAOff (), inst->getLineNo ());
2245
+ syncInst->setDistance (1 );
2254
2246
}
2255
2247
2256
- if (hasDistOneAreg && insertedSync)
2257
2248
{
2258
- G4_INST* syncInst = nullptr ;
2259
- syncInst = insertSyncInstructionAfter (bb, prevIt, inst->getCISAOff (), inst->getLineNo ());
2260
- syncInst->setDistance (1 );
2249
+ insertSyncToken (bb, node, inst, inst_it, newInstID, dstTokens, srcTokens, false );
2261
2250
}
2262
2251
}
2263
2252
@@ -3359,7 +3348,6 @@ void G4_BB_SB::SBDDD(G4_BB* bb,
3359
3348
if (hasFollowDistOneAReg)
3360
3349
{
3361
3350
node->setDistance (1 );
3362
- node->setDistOneAReg ();
3363
3351
hasFollowDistOneAReg = false ;
3364
3352
}
3365
3353
@@ -3369,6 +3357,8 @@ void G4_BB_SB::SBDDD(G4_BB* bb,
3369
3357
if (hasFollowDistOneAReg)
3370
3358
{
3371
3359
node->setDistance (1 );
3360
+ node->setDistOneAReg ();
3361
+
3372
3362
}
3373
3363
3374
3364
0 commit comments