Skip to content

Commit 5e5548c

Browse files
Clean up
1 parent c105394 commit 5e5548c

File tree

2 files changed

+17
-17
lines changed

2 files changed

+17
-17
lines changed

src/coreclr/jit/lsra.cpp

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4908,29 +4908,24 @@ void LinearScan::handleDelayRegisters(regsFreeStruct* regsFree,
49084908
var_types currType)
49094909
{
49104910
if ((regsFree->regsToFree | regsFree->delayRegsToFree) != RBM_NONE)
4911-
// if ((regsToFree | delayRegsToFree).IsNonEmpty())
49124911
{
4913-
// freeRegisters(regsToFree);
49144912
freeRegisters(regsFree->regsToFree, currType, regOffset);
49154913
if ((currentLocation > (prevLocation + 1)) && (regsFree->delayRegsToFree != RBM_NONE))
4916-
// if ((currentLocation > (prevLocation + 1)) && (delayRegsToFree.IsNonEmpty()))
49174914
{
49184915
// We should never see a delayReg that is delayed until a Location that has no RefPosition
49194916
// (that would be the RefPosition that it was supposed to interfere with).
4920-
assert(!"Found a delayRegFree associated with Location with no reference");
4917+
4918+
// Assert not valid any longer since we might process this later
4919+
// assert(!"Found a delayRegFree associated with Location with no reference");
49214920
// However, to be cautious for the Release build case, we will free them.
49224921
freeRegisters(regsFree->delayRegsToFree, currType, regOffset);
49234922
regsFree->delayRegsToFree = RBM_NONE;
49244923
regsInUseThisLocation = RBM_NONE;
49254924
}
49264925
regsFree->regsToFree = regsFree->delayRegsToFree;
4927-
// regsToFree = delayRegsToFree;
49284926
regsFree->delayRegsToFree = RBM_NONE;
49294927
#ifdef DEBUG
4930-
// verifyFreeRegisters(regsToFree);
4931-
regMaskTP regsToFreeVerify = RBM_NONE;
4932-
regsToFreeVerify.AddRegsetForType(regsFree->regsToFree, currType);
4933-
verifyFreeRegisters(regsToFreeVerify, currType);
4928+
verifyFreeRegisters(regsFree->regsToFree, currType);
49344929
#endif
49354930
}
49364931
}
@@ -5122,10 +5117,11 @@ void LinearScan::allocateRegistersMinimal()
51225117
currentRegsFree->copyRegsToFree = RBM_NONE;
51235118
regsInUseThisLocation = regsInUseNextLocation;
51245119
regsInUseNextLocation = RBM_NONE;
5125-
handleDelayRegisters(&regsFreeLow, prevLocation, currentLocation, REG_LOW_BASE);
5120+
handleDelayRegisters(currentRegsFree, prevLocation, currentLocation, regOffset, currType);
5121+
/*handleDelayRegisters(&regsFreeLow, prevLocation, currentLocation, REG_LOW_BASE);
51265122
#ifdef HAS_MORE_THAN_64_REGISTERS
51275123
handleDelayRegisters(&regsFreeHigh, prevLocation, currentLocation, REG_HIGH_BASE, TYP_MASK);
5128-
#endif // HAS_MORE_THAN_64_REGISTERS
5124+
#endif // HAS_MORE_THAN_64_REGISTERS*/
51295125
/*if ((currentRegsFree->regsToFree | currentRegsFree->delayRegsToFree) != RBM_NONE)
51305126
{
51315127
freeRegisters(currentRegsFree->regsToFree, currType, regOffset);
@@ -5860,10 +5856,11 @@ void LinearScan::allocateRegisters()
58605856
consecutiveRegsInUseThisLocation = RBM_NONE;
58615857
}
58625858
#endif
5863-
handleDelayRegisters(&regsFreeLow, prevLocation, currentLocation, REG_LOW_BASE);
5859+
handleDelayRegisters(currentRegsFree, prevLocation, currentLocation, regOffset, currType);
5860+
/*handleDelayRegisters(&regsFreeLow, prevLocation, currentLocation, REG_LOW_BASE);
58645861
#ifdef HAS_MORE_THAN_64_REGISTERS
58655862
handleDelayRegisters(&regsFreeHigh, prevLocation, currentLocation, REG_HIGH_BASE, TYP_MASK);
5866-
#endif // HAS_MORE_THAN_64_REGISTERS
5863+
#endif // HAS_MORE_THAN_64_REGISTERS*/
58675864
/*if ((currentRegsFree->regsToFree | currentRegsFree->delayRegsToFree) != RBM_NONE)
58685865
// if ((regsToFree | delayRegsToFree).IsNonEmpty())
58695866
{
@@ -12106,14 +12103,17 @@ void LinearScan::verifyFreeRegisters(regMaskTP regsToFree)
1210612103
// Arguments:
1210712104
// regsToFree - Registers that were just freed.
1210812105
//
12109-
void LinearScan::verifyFreeRegisters(regMaskTP regsToFree, var_types type)
12106+
void LinearScan::verifyFreeRegisters(SingleTypeRegSet regsToFree, var_types type)
1211012107
{
12108+
//regMaskTP availableRegs = (allAvailableRegs);
12109+
SingleTypeRegSet availableRegsForType = (allAvailableRegs).GetRegSetForType(type);
1211112110
for (regNumber reg = REG_FIRST; reg < AVAILABLE_REG_COUNT; reg = REG_NEXT(reg))
1211212111
{
12113-
regMaskTP regMask = genRegMask(reg);
12112+
//regMaskTP regMask = genRegMask(reg);
12113+
SingleTypeRegSet regMask = genSingleTypeRegMask(reg);
1211412114
// If this isn't available or if it's still waiting to be freed (i.e. it was in
1211512115
// delayRegsToFree and so now it's in regsToFree), then skip it.
12116-
if ((regMask & allAvailableRegs & ~regsToFree).IsEmpty())
12116+
if ((regMask & availableRegsForType & ~regsToFree) == RBM_NONE)
1211712117
{
1211812118
continue;
1211912119
}

src/coreclr/jit/lsra.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -931,7 +931,7 @@ class LinearScan : public LinearScanInterface
931931
static bool IsResolutionMove(GenTree* node);
932932
static bool IsResolutionNode(LIR::Range& containingRange, GenTree* node);
933933

934-
void verifyFreeRegisters(regMaskTP regsToFree, var_types type);
934+
void verifyFreeRegisters(SingleTypeRegSet regsToFree, var_types type);
935935
void verifyFreeRegisters(regMaskTP regsToFree);
936936
void verifyFinalAllocation();
937937
void verifyResolutionMove(GenTree* resolutionNode, LsraLocation currentLocation);

0 commit comments

Comments
 (0)