Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Replace gtLclVarCommon. with AsLclVarCommon()-> #27207

Merged
merged 5 commits into from
Oct 21, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions src/jit/assertionprop.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Compiler::fgWalkResult Compiler::optAddCopiesCallback(GenTree** pTree, fgWalkDat
GenTree* op1 = tree->AsOp()->gtOp1;
Compiler* comp = data->compiler;

if ((op1->gtOper == GT_LCL_VAR) && (op1->gtLclVarCommon.GetLclNum() == comp->optAddCopyLclNum))
if ((op1->gtOper == GT_LCL_VAR) && (op1->AsLclVarCommon()->GetLclNum() == comp->optAddCopyLclNum))
{
comp->optAddCopyAsgnNode = tree;
return WALK_ABORT;
Expand Down Expand Up @@ -450,7 +450,7 @@ void Compiler::optAddCopies()
GenTree* op1 = tree->AsOp()->gtOp1;

noway_assert(tree && op1 && tree->OperIs(GT_ASG) && (op1->gtOper == GT_LCL_VAR) &&
(op1->gtLclVarCommon.GetLclNum() == lclNum));
(op1->AsLclVarCommon()->GetLclNum() == lclNum));

/* Assign the old expression into the new temp */

Expand Down Expand Up @@ -886,7 +886,7 @@ AssertionIndex Compiler::optCreateAssertion(GenTree* op1,
goto DONE_ASSERTION; // Don't make an assertion
}

unsigned lclNum = op1->gtLclVarCommon.GetLclNum();
unsigned lclNum = op1->AsLclVarCommon()->GetLclNum();
noway_assert(lclNum < lvaCount);
LclVarDsc* lclVar = &lvaTable[lclNum];

Expand Down Expand Up @@ -965,7 +965,7 @@ AssertionIndex Compiler::optCreateAssertion(GenTree* op1,
//
else if (op1->gtOper == GT_LCL_VAR)
{
unsigned lclNum = op1->gtLclVarCommon.GetLclNum();
unsigned lclNum = op1->AsLclVarCommon()->GetLclNum();
noway_assert(lclNum < lvaCount);
LclVarDsc* lclVar = &lvaTable[lclNum];

Expand Down Expand Up @@ -1138,7 +1138,7 @@ AssertionIndex Compiler::optCreateAssertion(GenTree* op1,
goto DONE_ASSERTION; // Don't make an assertion
}

unsigned lclNum2 = op2->gtLclVarCommon.GetLclNum();
unsigned lclNum2 = op2->AsLclVarCommon()->GetLclNum();
noway_assert(lclNum2 < lvaCount);
LclVarDsc* lclVar2 = &lvaTable[lclNum2];

Expand Down Expand Up @@ -1278,7 +1278,7 @@ AssertionIndex Compiler::optCreateAssertion(GenTree* op1,
//
if (op1->gtOper == GT_LCL_VAR)
{
unsigned lclNum = op1->gtLclVarCommon.GetLclNum();
unsigned lclNum = op1->AsLclVarCommon()->GetLclNum();
noway_assert(lclNum < lvaCount);

// If the local variable is not in SSA then bail
Expand Down Expand Up @@ -2593,7 +2593,7 @@ GenTree* Compiler::optConstantAssertionProp(AssertionDsc* curAssertion,
GenTree* tree,
Statement* stmt DEBUGARG(AssertionIndex index))
{
unsigned lclNum = tree->gtLclVarCommon.GetLclNum();
unsigned lclNum = tree->AsLclVarCommon()->GetLclNum();

if (lclNumIsCSE(lclNum))
{
Expand Down Expand Up @@ -2787,7 +2787,7 @@ GenTree* Compiler::optCopyAssertionProp(AssertionDsc* curAssertion,

noway_assert(op1.lcl.lclNum != op2.lcl.lclNum);

unsigned lclNum = tree->gtLclVarCommon.GetLclNum();
unsigned lclNum = tree->AsLclVarCommon()->GetLclNum();

// Make sure one of the lclNum of the assertion matches with that of the tree.
if (op1.lcl.lclNum != lclNum && op2.lcl.lclNum != lclNum)
Expand Down Expand Up @@ -2825,8 +2825,8 @@ GenTree* Compiler::optCopyAssertionProp(AssertionDsc* curAssertion,
return nullptr;
}

tree->gtLclVarCommon.SetSsaNum(copySsaNum);
tree->gtLclVarCommon.SetLclNum(copyLclNum);
tree->AsLclVarCommon()->SetSsaNum(copySsaNum);
tree->AsLclVarCommon()->SetLclNum(copyLclNum);

#ifdef DEBUG
if (verbose)
Expand Down Expand Up @@ -2900,8 +2900,8 @@ GenTree* Compiler::optAssertionProp_LclVar(ASSERT_VALARG_TP assertions, GenTree*
// gtFoldExpr, specifically the case of a cast, where the fold operation changes the type of the LclVar
// node. In such a case is not safe to perform the substitution since later on the JIT will assert mismatching
// types between trees.
else if (curAssertion->op1.lcl.lclNum == tree->gtLclVarCommon.GetLclNum() &&
tree->gtType == lvaTable[tree->gtLclVarCommon.GetLclNum()].lvType)
else if (curAssertion->op1.lcl.lclNum == tree->AsLclVarCommon()->GetLclNum() &&
tree->gtType == lvaTable[tree->AsLclVarCommon()->GetLclNum()].lvType)
{
// If local assertion prop just, perform constant prop.
if (optLocalAssertionProp)
Expand Down Expand Up @@ -3326,7 +3326,7 @@ GenTree* Compiler::optAssertionPropLocal_RelOp(ASSERT_VALARG_TP assertions, GenT
}

// Find an equal or not equal assertion about op1 var.
unsigned lclNum = op1->gtLclVarCommon.GetLclNum();
unsigned lclNum = op1->AsLclVarCommon()->GetLclNum();
noway_assert(lclNum < lvaCount);
AssertionIndex index = optLocalAssertionIsEqualOrNotEqual(op1Kind, lclNum, op2Kind, cnsVal, assertions);

Expand Down Expand Up @@ -3425,7 +3425,7 @@ GenTree* Compiler::optAssertionProp_Cast(ASSERT_VALARG_TP assertions, GenTree* t
AssertionIndex index = optAssertionIsSubrange(lcl, fromType, toType, assertions);
if (index != NO_ASSERTION_INDEX)
{
LclVarDsc* varDsc = &lvaTable[lcl->gtLclVarCommon.GetLclNum()];
LclVarDsc* varDsc = &lvaTable[lcl->AsLclVarCommon()->GetLclNum()];
if (varDsc->lvNormalizeOnLoad() || varTypeIsLong(varDsc->TypeGet()))
{
// For normalize on load variables it must be a narrowing cast to remove
Expand Down
2 changes: 1 addition & 1 deletion src/jit/codegen.h
Original file line number Diff line number Diff line change
Expand Up @@ -1232,7 +1232,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
{
return false;
}
const LclVarDsc* varDsc = &compiler->lvaTable[tree->gtLclVarCommon.GetLclNum()];
const LclVarDsc* varDsc = &compiler->lvaTable[tree->AsLclVarCommon()->GetLclNum()];
return (varDsc->lvIsRegCandidate());
}

Expand Down
6 changes: 3 additions & 3 deletions src/jit/codegenarm64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4598,7 +4598,7 @@ void CodeGen::genSIMDIntrinsicGetItem(GenTreeSIMD* simdNode)

if (op1->OperIsLocal())
{
unsigned varNum = op1->gtLclVarCommon.GetLclNum();
unsigned varNum = op1->AsLclVarCommon()->GetLclNum();

GetEmitter()->emitIns_R_S(ins, emitActualTypeSize(baseType), targetReg, varNum, offset);
}
Expand Down Expand Up @@ -4657,7 +4657,7 @@ void CodeGen::genSIMDIntrinsicGetItem(GenTreeSIMD* simdNode)
assert(!op1->isUsedFromReg());
if (op1->OperIsLocal())
{
unsigned varNum = op1->gtLclVarCommon.GetLclNum();
unsigned varNum = op1->AsLclVarCommon()->GetLclNum();

baseReg = simdNode->ExtractTempReg();

Expand Down Expand Up @@ -4969,7 +4969,7 @@ void CodeGen::genStoreLclTypeSIMD12(GenTree* treeNode)
assert((treeNode->OperGet() == GT_STORE_LCL_FLD) || (treeNode->OperGet() == GT_STORE_LCL_VAR));

unsigned offs = 0;
unsigned varNum = treeNode->gtLclVarCommon.GetLclNum();
unsigned varNum = treeNode->AsLclVarCommon()->GetLclNum();
assert(varNum < compiler->lvaCount);

if (treeNode->OperGet() == GT_STORE_LCL_FLD)
Expand Down
4 changes: 2 additions & 2 deletions src/jit/codegencommon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -457,7 +457,7 @@ regMaskTP CodeGenInterface::genGetRegMask(GenTree* tree)
assert(tree->gtOper == GT_LCL_VAR);

regMaskTP regMask = RBM_NONE;
const LclVarDsc* varDsc = compiler->lvaTable + tree->gtLclVarCommon.GetLclNum();
const LclVarDsc* varDsc = compiler->lvaTable + tree->AsLclVarCommon()->GetLclNum();
if (varDsc->lvPromoted)
{
for (unsigned i = varDsc->lvFieldLclStart; i < varDsc->lvFieldLclStart + varDsc->lvFieldCnt; ++i)
Expand Down Expand Up @@ -1142,7 +1142,7 @@ unsigned CodeGenInterface::InferStructOpSizeAlign(GenTree* op, unsigned* alignme
}
else if (op->gtOper == GT_LCL_VAR)
{
unsigned varNum = op->gtLclVarCommon.GetLclNum();
unsigned varNum = op->AsLclVarCommon()->GetLclNum();
LclVarDsc* varDsc = compiler->lvaTable + varNum;
assert(varDsc->lvType == TYP_STRUCT);
opSize = varDsc->lvSize();
Expand Down
4 changes: 2 additions & 2 deletions src/jit/codegenlinear.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -807,7 +807,7 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

void CodeGen::genSpillVar(GenTree* tree)
{
unsigned varNum = tree->gtLclVarCommon.GetLclNum();
unsigned varNum = tree->AsLclVarCommon()->GetLclNum();
LclVarDsc* varDsc = &(compiler->lvaTable[varNum]);

assert(varDsc->lvIsRegCandidate());
Expand Down Expand Up @@ -1850,7 +1850,7 @@ void CodeGen::genProduceReg(GenTree* tree)
{
// Store local variable to its home location.
// Ensure that lclVar stores are typed correctly.
unsigned varNum = tree->gtLclVarCommon.GetLclNum();
unsigned varNum = tree->AsLclVarCommon()->GetLclNum();
assert(!compiler->lvaTable[varNum].lvNormalizeOnStore() ||
(tree->TypeGet() == genActualType(compiler->lvaTable[varNum].TypeGet())));
inst_TT_RV(ins_Store(tree->gtType, compiler->isSIMDTypeLocalAligned(varNum)), tree, tree->GetRegNum());
Expand Down
10 changes: 5 additions & 5 deletions src/jit/codegenxarch.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1360,13 +1360,13 @@ void CodeGen::genFloatReturn(GenTree* treeNode)
GenTree* op1 = treeNode->gtGetOp1();
// Spill the return value register from an XMM register to the stack, then load it on the x87 stack.
// If it already has a home location, use that. Otherwise, we need a temp.
if (genIsRegCandidateLocal(op1) && compiler->lvaTable[op1->gtLclVarCommon.GetLclNum()].lvOnFrame)
if (genIsRegCandidateLocal(op1) && compiler->lvaTable[op1->AsLclVarCommon()->GetLclNum()].lvOnFrame)
{
if (compiler->lvaTable[op1->gtLclVarCommon.GetLclNum()].GetRegNum() != REG_STK)
if (compiler->lvaTable[op1->AsLclVarCommon()->GetLclNum()].GetRegNum() != REG_STK)
{
op1->gtFlags |= GTF_SPILL;
inst_TT_RV(ins_Store(op1->gtType, compiler->isSIMDTypeLocalAligned(op1->gtLclVarCommon.GetLclNum())), op1,
op1->GetRegNum());
inst_TT_RV(ins_Store(op1->gtType, compiler->isSIMDTypeLocalAligned(op1->AsLclVarCommon()->GetLclNum())),
op1, op1->GetRegNum());
}
// Now, load it to the fp stack.
GetEmitter()->emitIns_S(INS_fld, emitTypeSize(op1), op1->AsLclVarCommon()->GetLclNum(), 0);
Expand Down Expand Up @@ -3017,7 +3017,7 @@ void CodeGen::genCodeForLoadOffset(instruction ins, emitAttr size, regNumber dst
{
offset += baseNode->AsLclFld()->gtLclOffs;
}
emit->emitIns_R_S(ins, size, dst, baseNode->gtLclVarCommon.GetLclNum(), offset);
emit->emitIns_R_S(ins, size, dst, baseNode->AsLclVarCommon()->GetLclNum(), offset);
}
else
{
Expand Down
10 changes: 5 additions & 5 deletions src/jit/compiler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9573,16 +9573,16 @@ int cSsaNumIR(Compiler* comp, GenTree* tree)
{
int chars = 0;

if (tree->gtLclVarCommon.HasSsaName())
if (tree->AsLclVarCommon()->HasSsaName())
{
if (tree->gtFlags & GTF_VAR_USEASG)
{
assert(tree->gtFlags & GTF_VAR_DEF);
chars += printf("<u:%d><d:%d>", tree->gtLclVarCommon.GetSsaNum(), comp->GetSsaNumForLocalVarDef(tree));
chars += printf("<u:%d><d:%d>", tree->AsLclVarCommon()->GetSsaNum(), comp->GetSsaNumForLocalVarDef(tree));
}
else
{
chars += printf("<%s:%d>", (tree->gtFlags & GTF_VAR_DEF) ? "d" : "u", tree->gtLclVarCommon.GetSsaNum());
chars += printf("<%s:%d>", (tree->gtFlags & GTF_VAR_DEF) ? "d" : "u", tree->AsLclVarCommon()->GetSsaNum());
}
}

Expand Down Expand Up @@ -9683,7 +9683,7 @@ int cLeafIR(Compiler* comp, GenTree* tree)
case GT_LCL_VAR:
case GT_LCL_VAR_ADDR:
case GT_STORE_LCL_VAR:
lclNum = tree->gtLclVarCommon.GetLclNum();
lclNum = tree->AsLclVarCommon()->GetLclNum();
comp->gtGetLclVarNameInfo(lclNum, &ilKind, &ilName, &ilNum);
if (ilName != nullptr)
{
Expand Down Expand Up @@ -9747,7 +9747,7 @@ int cLeafIR(Compiler* comp, GenTree* tree)
case GT_LCL_FLD_ADDR:
case GT_STORE_LCL_FLD:

lclNum = tree->gtLclVarCommon.GetLclNum();
lclNum = tree->AsLclVarCommon()->GetLclNum();
comp->gtGetLclVarNameInfo(lclNum, &ilKind, &ilName, &ilNum);
if (ilName != nullptr)
{
Expand Down
12 changes: 6 additions & 6 deletions src/jit/compiler.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1186,7 +1186,7 @@ inline GenTree* Compiler::gtNewFieldRef(var_types typ, CORINFO_FIELD_HANDLE fldH
if (obj != nullptr && obj->OperGet() == GT_ADDR && varTypeIsStruct(obj->AsOp()->gtOp1) &&
obj->AsOp()->gtOp1->OperGet() == GT_LCL_VAR)
{
unsigned lclNum = obj->AsOp()->gtOp1->gtLclVarCommon.GetLclNum();
unsigned lclNum = obj->AsOp()->gtOp1->AsLclVarCommon()->GetLclNum();
lvaTable[lclNum].lvFieldAccessed = 1;
#if defined(_TARGET_AMD64_) || defined(_TARGET_ARM64_)
// These structs are passed by reference; we should probably be able to treat these
Expand Down Expand Up @@ -1852,7 +1852,7 @@ inline VARSET_VALRET_TP Compiler::lvaStmtLclMask(Statement* stmt)
continue;
}

varNum = tree->gtLclVarCommon.GetLclNum();
varNum = tree->AsLclVarCommon()->GetLclNum();
assert(varNum < lvaCount);
varDsc = lvaTable + varNum;

Expand Down Expand Up @@ -3351,7 +3351,7 @@ inline void Compiler::LoopDsc::VERIFY_lpIterTree()
inline unsigned Compiler::LoopDsc::lpIterVar()
{
VERIFY_lpIterTree();
return lpIterTree->AsOp()->gtOp1->gtLclVarCommon.GetLclNum();
return lpIterTree->AsOp()->gtOp1->AsLclVarCommon()->GetLclNum();
}

//-----------------------------------------------------------------------------
Expand Down Expand Up @@ -3488,7 +3488,7 @@ inline unsigned Compiler::LoopDsc::lpVarLimit()

GenTree* limit = lpLimit();
assert(limit->OperGet() == GT_LCL_VAR);
return limit->gtLclVarCommon.GetLclNum();
return limit->AsLclVarCommon()->GetLclNum();
}

//-----------------------------------------------------------------------------
Expand All @@ -3504,7 +3504,7 @@ inline bool Compiler::LoopDsc::lpArrLenLimit(Compiler* comp, ArrIndex* index)
// Check if we have a.length or a[i][j].length
if (limit->AsArrLen()->ArrRef()->gtOper == GT_LCL_VAR)
{
index->arrLcl = limit->AsArrLen()->ArrRef()->gtLclVarCommon.GetLclNum();
index->arrLcl = limit->AsArrLen()->ArrRef()->AsLclVarCommon()->GetLclNum();
index->rank = 0;
return true;
}
Expand Down Expand Up @@ -3838,7 +3838,7 @@ inline bool Compiler::impIsThis(GenTree* obj)
else
{
return ((obj != nullptr) && (obj->gtOper == GT_LCL_VAR) &&
lvaIsOriginalThisArg(obj->gtLclVarCommon.GetLclNum()));
lvaIsOriginalThisArg(obj->AsLclVarCommon()->GetLclNum()));
}
}

Expand Down
8 changes: 4 additions & 4 deletions src/jit/copyprop.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ void Compiler::optBlockCopyPropPopStacks(BasicBlock* block, LclNumToGenTreePtrSt
{
continue;
}
unsigned lclNum = tree->gtLclVarCommon.GetLclNum();
unsigned lclNum = tree->AsLclVarCommon()->GetLclNum();
if (!lvaInSsa(lclNum))
{
continue;
Expand Down Expand Up @@ -277,7 +277,7 @@ void Compiler::optCopyProp(BasicBlock* block, Statement* stmt, GenTree* tree, Lc
}
#endif

tree->gtLclVarCommon.SetLclNum(newLclNum);
tree->AsLclVarCommon()->SetLclNum(newLclNum);
tree->AsLclVarCommon()->SetSsaNum(newSsaNum);
gtUpdateSideEffects(stmt, tree);
#ifdef DEBUG
Expand Down Expand Up @@ -354,7 +354,7 @@ void Compiler::optBlockCopyProp(BasicBlock* block, LclNumToGenTreePtrStack* curS
//
if (optIsSsaLocal(tree) && (tree->gtFlags & GTF_VAR_DEF))
{
VarSetOps::AddElemD(this, optCopyPropKillSet, lvaTable[tree->gtLclVarCommon.GetLclNum()].lvVarIndex);
VarSetOps::AddElemD(this, optCopyPropKillSet, lvaTable[tree->AsLclVarCommon()->GetLclNum()].lvVarIndex);
}
}

Expand All @@ -366,7 +366,7 @@ void Compiler::optBlockCopyProp(BasicBlock* block, LclNumToGenTreePtrStack* curS
continue;
}

unsigned lclNum = tree->gtLclVarCommon.GetLclNum();
unsigned lclNum = tree->AsLclVarCommon()->GetLclNum();

// As we encounter a definition add it to the stack as a live definition.
if (tree->gtFlags & GTF_VAR_DEF)
Expand Down
2 changes: 1 addition & 1 deletion src/jit/earlyprop.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -573,7 +573,7 @@ void Compiler::optFoldNullCheck(GenTree* tree)
{
GenTree* additionNode = defRHS->gtGetOp2();
if ((additionNode->gtGetOp1()->OperGet() == GT_LCL_VAR) &&
(additionNode->gtGetOp1()->gtLclVarCommon.GetLclNum() == nullCheckLclNum))
(additionNode->gtGetOp1()->AsLclVarCommon()->GetLclNum() == nullCheckLclNum))
{
GenTree* offset = additionNode->gtGetOp2();
if (offset->IsCnsIntOrI())
Expand Down
8 changes: 4 additions & 4 deletions src/jit/flowgraph.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7651,7 +7651,7 @@ GenTree* Compiler::fgDoNormalizeOnStore(GenTree* tree)
// Small-typed arguments and aliased locals are normalized on load.
// Other small-typed locals are normalized on store.
// If it is an assignment to one of the latter, insert the cast on RHS
unsigned varNum = op1->gtLclVarCommon.GetLclNum();
unsigned varNum = op1->AsLclVarCommon()->GetLclNum();
LclVarDsc* varDsc = &lvaTable[varNum];

if (varDsc->lvNormalizeOnStore())
Expand Down Expand Up @@ -9857,7 +9857,7 @@ VARSET_VALRET_TP Compiler::fgGetVarBits(GenTree* tree)

assert(tree->gtOper == GT_LCL_VAR || tree->gtOper == GT_LCL_FLD);

unsigned int lclNum = tree->gtLclVarCommon.GetLclNum();
unsigned int lclNum = tree->AsLclVarCommon()->GetLclNum();
LclVarDsc* varDsc = lvaTable + lclNum;
if (varDsc->lvTracked)
{
Expand Down Expand Up @@ -22293,7 +22293,7 @@ void Compiler::fgAttachStructInlineeToAsg(GenTree* tree, GenTree* child, CORINFO
// If it is a multireg return on x64/ux, the local variable should be marked as lvIsMultiRegRet
if (child->AsCall()->HasMultiRegRetVal())
{
unsigned lclNum = tree->AsOp()->gtOp1->gtLclVarCommon.GetLclNum();
unsigned lclNum = tree->AsOp()->gtOp1->AsLclVarCommon()->GetLclNum();
lvaTable[lclNum].lvIsMultiRegRet = true;
}
return;
Expand Down Expand Up @@ -22626,7 +22626,7 @@ Compiler::fgWalkResult Compiler::fgLateDevirtualization(GenTree** pTree, fgWalkD

if ((lhs->OperGet() == GT_LCL_VAR) && (lhs->TypeGet() == TYP_REF))
{
const unsigned lclNum = lhs->gtLclVarCommon.GetLclNum();
const unsigned lclNum = lhs->AsLclVarCommon()->GetLclNum();
LclVarDsc* lcl = comp->lvaGetDesc(lclNum);

if (lcl->lvSingleDef)
Expand Down
Loading