diff options
author | Mike Danes <onemihaid@hotmail.com> | 2018-11-02 23:45:00 +0200 |
---|---|---|
committer | Mike Danes <onemihaid@hotmail.com> | 2018-11-03 09:44:28 +0200 |
commit | d10a43375ef9086034cc64dce114b70f801321e8 (patch) | |
tree | 275d5f756f225a4be59d43808a4656ea58117c64 | |
parent | b94d2ea21043bff882a9404cfb9bb17a111582ab (diff) | |
download | coreclr-d10a43375ef9086034cc64dce114b70f801321e8.tar.gz coreclr-d10a43375ef9086034cc64dce114b70f801321e8.tar.bz2 coreclr-d10a43375ef9086034cc64dce114b70f801321e8.zip |
Ifdef out GenTreeLclVar::gtLclILoffs
This member is only used in debug builds.
-rw-r--r-- | src/jit/compiler.h | 4 | ||||
-rw-r--r-- | src/jit/decomposelongs.cpp | 4 | ||||
-rw-r--r-- | src/jit/gentree.cpp | 12 | ||||
-rw-r--r-- | src/jit/gentree.h | 13 | ||||
-rw-r--r-- | src/jit/importer.cpp | 16 | ||||
-rw-r--r-- | src/jit/lir.cpp | 2 | ||||
-rw-r--r-- | src/jit/liveness.cpp | 3 | ||||
-rw-r--r-- | src/jit/lower.cpp | 30 | ||||
-rw-r--r-- | src/jit/morph.cpp | 8 |
9 files changed, 45 insertions, 47 deletions
diff --git a/src/jit/compiler.h b/src/jit/compiler.h index eb6255d333..aff7ceaed2 100644 --- a/src/jit/compiler.h +++ b/src/jit/compiler.h @@ -2366,7 +2366,8 @@ public: GenTreeCall* gtNewHelperCallNode(unsigned helper, var_types type, GenTreeArgList* args = nullptr); - GenTree* gtNewLclvNode(unsigned lnum, var_types type, IL_OFFSETX ILoffs = BAD_IL_OFFSET); + GenTree* gtNewLclvNode(unsigned lnum, var_types type DEBUGARG(IL_OFFSETX ILoffs = BAD_IL_OFFSET)); + GenTree* gtNewLclLNode(unsigned lnum, var_types type DEBUGARG(IL_OFFSETX ILoffs = BAD_IL_OFFSET)); #ifdef FEATURE_SIMD GenTreeSIMD* gtNewSIMDNode( @@ -2411,7 +2412,6 @@ public: CORINFO_CLASS_HANDLE gtGetStructHandleForHWSIMD(var_types simdType, var_types simdBaseType); #endif // FEATURE_HW_INTRINSICS - GenTree* gtNewLclLNode(unsigned lnum, var_types type, IL_OFFSETX ILoffs = BAD_IL_OFFSET); GenTreeLclFld* gtNewLclFldNode(unsigned lnum, var_types type, unsigned offset); GenTree* gtNewInlineCandidateReturnExpr(GenTree* inlineCandidate, var_types type); diff --git a/src/jit/decomposelongs.cpp b/src/jit/decomposelongs.cpp index cd12182018..4a0f27b555 100644 --- a/src/jit/decomposelongs.cpp +++ b/src/jit/decomposelongs.cpp @@ -805,7 +805,7 @@ GenTree* DecomposeLongs::DecomposeStoreInd(LIR::Use& use) storeIndLow->gtType = TYP_INT; GenTree* addrBaseHigh = new (m_compiler, GT_LCL_VAR) - GenTreeLclVar(GT_LCL_VAR, addrBase->TypeGet(), addrBase->AsLclVarCommon()->GetLclNum(), BAD_IL_OFFSET); + GenTreeLclVar(GT_LCL_VAR, addrBase->TypeGet(), addrBase->AsLclVarCommon()->GetLclNum()); GenTree* addrHigh = new (m_compiler, GT_LEA) GenTreeAddrMode(TYP_REF, addrBaseHigh, nullptr, 0, genTypeSize(TYP_INT)); GenTree* storeIndHigh = new (m_compiler, GT_STOREIND) GenTreeStoreInd(TYP_INT, addrHigh, dataHigh); @@ -857,7 +857,7 @@ GenTree* DecomposeLongs::DecomposeInd(LIR::Use& use) // Create tree of ind(addr+4) GenTree* addrBase = indLow->gtGetOp1(); GenTree* addrBaseHigh = new (m_compiler, GT_LCL_VAR) - GenTreeLclVar(GT_LCL_VAR, addrBase->TypeGet(), addrBase->AsLclVarCommon()->GetLclNum(), BAD_IL_OFFSET); + GenTreeLclVar(GT_LCL_VAR, addrBase->TypeGet(), addrBase->AsLclVarCommon()->GetLclNum()); GenTree* addrHigh = new (m_compiler, GT_LEA) GenTreeAddrMode(TYP_REF, addrBaseHigh, nullptr, 0, genTypeSize(TYP_INT)); GenTree* indHigh = new (m_compiler, GT_IND) GenTreeIndir(GT_IND, TYP_INT, addrHigh, nullptr); diff --git a/src/jit/gentree.cpp b/src/jit/gentree.cpp index 837974acde..5846187268 100644 --- a/src/jit/gentree.cpp +++ b/src/jit/gentree.cpp @@ -5869,7 +5869,7 @@ GenTreeCall* Compiler::gtNewCallNode( return node; } -GenTree* Compiler::gtNewLclvNode(unsigned lnum, var_types type, IL_OFFSETX ILoffs) +GenTree* Compiler::gtNewLclvNode(unsigned lnum, var_types type DEBUGARG(IL_OFFSETX ILoffs)) { // We need to ensure that all struct values are normalized. // It might be nice to assert this in general, but we have assignments of int to long. @@ -5881,7 +5881,7 @@ GenTree* Compiler::gtNewLclvNode(unsigned lnum, var_types type, IL_OFFSETX ILoff assert(type == lvaTable[lnum].lvType || (lvaIsImplicitByRefLocal(lnum) && fgGlobalMorph && (lvaTable[lnum].lvType == TYP_BYREF))); } - GenTree* node = new (this, GT_LCL_VAR) GenTreeLclVar(type, lnum, ILoffs); + GenTree* node = new (this, GT_LCL_VAR) GenTreeLclVar(type, lnum DEBUGARG(ILoffs)); /* Cannot have this assert because the inliner uses this function * to add temporaries */ @@ -5891,7 +5891,7 @@ GenTree* Compiler::gtNewLclvNode(unsigned lnum, var_types type, IL_OFFSETX ILoff return node; } -GenTree* Compiler::gtNewLclLNode(unsigned lnum, var_types type, IL_OFFSETX ILoffs) +GenTree* Compiler::gtNewLclLNode(unsigned lnum, var_types type DEBUGARG(IL_OFFSETX ILoffs)) { // We need to ensure that all struct values are normalized. // It might be nice to assert this in general, but we have assignments of int to long. @@ -5905,7 +5905,7 @@ GenTree* Compiler::gtNewLclLNode(unsigned lnum, var_types type, IL_OFFSETX ILoff } // This local variable node may later get transformed into a large node assert(GenTree::s_gtNodeSizes[GT_CALL] > GenTree::s_gtNodeSizes[GT_LCL_VAR]); - GenTree* node = new (this, GT_CALL) GenTreeLclVar(type, lnum, ILoffs DEBUGARG(/*largeNode*/ true)); + GenTree* node = new (this, GT_CALL) GenTreeLclVar(type, lnum DEBUGARG(ILoffs) DEBUGARG(/*largeNode*/ true)); return node; } @@ -6682,7 +6682,7 @@ GenTree* Compiler::gtClone(GenTree* tree, bool complexOK) // Remember that the LclVar node has been cloned. The flag will be set // on 'copy' as well. tree->gtFlags |= GTF_VAR_CLONED; - copy = gtNewLclvNode(tree->gtLclVarCommon.gtLclNum, tree->gtType, tree->gtLclVar.gtLclILoffs); + copy = gtNewLclvNode(tree->gtLclVarCommon.gtLclNum, tree->gtType DEBUGARG(tree->gtLclVar.gtLclILoffs)); break; case GT_LCL_FLD: @@ -6869,7 +6869,7 @@ GenTree* Compiler::gtCloneExpr( // Remember that the LclVar node has been cloned. The flag will // be set on 'copy' as well. tree->gtFlags |= GTF_VAR_CLONED; - copy = gtNewLclvNode(tree->gtLclVar.gtLclNum, tree->gtType, tree->gtLclVar.gtLclILoffs); + copy = gtNewLclvNode(tree->gtLclVar.gtLclNum, tree->gtType DEBUGARG(tree->gtLclVar.gtLclILoffs)); copy->AsLclVarCommon()->SetSsaNum(tree->AsLclVarCommon()->GetSsaNum()); } copy->gtFlags = tree->gtFlags; diff --git a/src/jit/gentree.h b/src/jit/gentree.h index c04a09d0fe..a086e32d2b 100644 --- a/src/jit/gentree.h +++ b/src/jit/gentree.h @@ -2733,15 +2733,18 @@ public: struct GenTreeLclVar : public GenTreeLclVarCommon { - IL_OFFSET gtLclILoffs; // instr offset of ref (only for debug info) + INDEBUG(IL_OFFSET gtLclILoffs;) // instr offset of ref (only for debug) - GenTreeLclVar(var_types type, unsigned lclNum, IL_OFFSET ilOffs DEBUGARG(bool largeNode = false)) - : GenTreeLclVarCommon(GT_LCL_VAR, type, lclNum DEBUGARG(largeNode)), gtLclILoffs(ilOffs) + GenTreeLclVar(var_types type, + unsigned lclNum DEBUGARG(IL_OFFSET ilOffs = BAD_IL_OFFSET) DEBUGARG(bool largeNode = false)) + : GenTreeLclVarCommon(GT_LCL_VAR, type, lclNum DEBUGARG(largeNode)) DEBUGARG(gtLclILoffs(ilOffs)) { } - GenTreeLclVar(genTreeOps oper, var_types type, unsigned lclNum, IL_OFFSET ilOffs DEBUGARG(bool largeNode = false)) - : GenTreeLclVarCommon(oper, type, lclNum DEBUGARG(largeNode)), gtLclILoffs(ilOffs) + GenTreeLclVar(genTreeOps oper, + var_types type, + unsigned lclNum DEBUGARG(IL_OFFSET ilOffs = BAD_IL_OFFSET) DEBUGARG(bool largeNode = false)) + : GenTreeLclVarCommon(oper, type, lclNum DEBUGARG(largeNode)) DEBUGARG(gtLclILoffs(ilOffs)) { assert(OperIsLocal(oper) || OperIsLocalAddr(oper)); } diff --git a/src/jit/importer.cpp b/src/jit/importer.cpp index 69e485e2be..dc30d08c15 100644 --- a/src/jit/importer.cpp +++ b/src/jit/importer.cpp @@ -10797,7 +10797,7 @@ void Compiler::impImportBlockCode(BasicBlock* block) /* Create the assignment node */ - op2 = gtNewLclvNode(lclNum, lclTyp, opcodeOffs + sz + 1); + op2 = gtNewLclvNode(lclNum, lclTyp DEBUGARG(opcodeOffs + sz + 1)); /* If the local is aliased or pinned, we need to spill calls and indirections from the stack. */ @@ -10913,7 +10913,7 @@ void Compiler::impImportBlockCode(BasicBlock* block) ADRVAR: - op1 = gtNewLclvNode(lclNum, lvaGetActualType(lclNum), opcodeOffs + sz + 1); + op1 = gtNewLclvNode(lclNum, lvaGetActualType(lclNum) DEBUGARG(opcodeOffs + sz + 1)); _PUSH_ADRVAR: assert(op1->gtOper == GT_LCL_VAR); @@ -10969,7 +10969,7 @@ void Compiler::impImportBlockCode(BasicBlock* block) assertImp(0 < numArgs); assert(lvaTable[lvaVarargsHandleArg].lvAddrExposed); lclNum = lvaVarargsHandleArg; - op1 = gtNewLclvNode(lclNum, TYP_I_IMPL, opcodeOffs + sz + 1); + op1 = gtNewLclvNode(lclNum, TYP_I_IMPL DEBUGARG(opcodeOffs + sz + 1)); op1 = gtNewOperNode(GT_ADDR, TYP_BYREF, op1); impPushOnStack(op1, tiRetVal); break; @@ -15597,7 +15597,7 @@ void Compiler::impLoadVar(unsigned lclNum, IL_OFFSET offset, typeInfo tiRetVal) lclTyp = lvaGetActualType(lclNum); } - impPushVar(gtNewLclvNode(lclNum, lclTyp, offset), tiRetVal); + impPushVar(gtNewLclvNode(lclNum, lclTyp DEBUGARG(offset)), tiRetVal); } // Load an argument on the operand stack @@ -16160,7 +16160,7 @@ bool Compiler::impReturnInstruction(BasicBlock* block, int prefixFlags, OPCODE& else if (info.compRetBuffArg != BAD_VAR_NUM) { // Assign value to return buff (first param) - GenTree* retBuffAddr = gtNewLclvNode(info.compRetBuffArg, TYP_BYREF, impCurStmtOffs); + GenTree* retBuffAddr = gtNewLclvNode(info.compRetBuffArg, TYP_BYREF DEBUGARG(impCurStmtOffs)); op2 = impAssignStructPtr(retBuffAddr, op2, retClsHnd, (unsigned)CHECK_SPILL_ALL); impAppendTree(op2, (unsigned)CHECK_SPILL_NONE, impCurStmtOffs); @@ -18129,7 +18129,7 @@ void Compiler::impInlineRecordArgInfo(InlineInfo* pInlineInfo, inlCurArgInfo->argIsLclVar = true; /* Remember the "original" argument number */ - curArgVal->gtLclVar.gtLclILoffs = argNum; + INDEBUG(curArgVal->gtLclVar.gtLclILoffs = argNum;) } if ((curArgVal->OperKind() & GTK_CONST) || @@ -18783,7 +18783,7 @@ GenTree* Compiler::impInlineFetchArg(unsigned lclNum, InlArgInfo* inlArgInfo, In } // Create a new lcl var node - remember the argument lclNum - op1 = gtNewLclvNode(op1->gtLclVarCommon.gtLclNum, newTyp, op1->gtLclVar.gtLclILoffs); + op1 = gtNewLclvNode(op1->gtLclVarCommon.gtLclNum, newTyp DEBUGARG(op1->gtLclVar.gtLclILoffs)); } } else if (argInfo.argIsByRefToStructLocal && !argInfo.argHasStargOp) @@ -18893,7 +18893,7 @@ GenTree* Compiler::impInlineFetchArg(unsigned lclNum, InlArgInfo* inlArgInfo, In !argInfo.argHasCallerLocalRef) { /* Get a *LARGE* LCL_VAR node */ - op1 = gtNewLclLNode(tmpNum, genActualType(lclTyp), lclNum); + op1 = gtNewLclLNode(tmpNum, genActualType(lclTyp) DEBUGARG(lclNum)); /* Record op1 as the very first use of this argument. If there are no further uses of the arg, we may be diff --git a/src/jit/lir.cpp b/src/jit/lir.cpp index 480a5d3e95..79d6379084 100644 --- a/src/jit/lir.cpp +++ b/src/jit/lir.cpp @@ -270,7 +270,7 @@ unsigned LIR::Use::ReplaceWithLclVar(Compiler* compiler, unsigned blockWeight, u assert(store->gtOp1 == node); GenTree* const load = - new (compiler, GT_LCL_VAR) GenTreeLclVar(store->TypeGet(), store->AsLclVarCommon()->GetLclNum(), BAD_IL_OFFSET); + new (compiler, GT_LCL_VAR) GenTreeLclVar(store->TypeGet(), store->AsLclVarCommon()->GetLclNum()); m_range->InsertAfter(node, store, load); diff --git a/src/jit/liveness.cpp b/src/jit/liveness.cpp index a92cc34cdb..9729272794 100644 --- a/src/jit/liveness.cpp +++ b/src/jit/liveness.cpp @@ -993,8 +993,7 @@ void Compiler::fgExtendDbgLifetimes() } else { - GenTree* store = - new (this, GT_STORE_LCL_VAR) GenTreeLclVar(GT_STORE_LCL_VAR, type, varNum, BAD_IL_OFFSET); + GenTree* store = new (this, GT_STORE_LCL_VAR) GenTreeLclVar(GT_STORE_LCL_VAR, type, varNum); store->gtOp.gtOp1 = zero; store->gtFlags |= (GTF_VAR_DEF | GTF_ASG); diff --git a/src/jit/lower.cpp b/src/jit/lower.cpp index 5e29c0b717..47ef1d0460 100644 --- a/src/jit/lower.cpp +++ b/src/jit/lower.cpp @@ -481,10 +481,9 @@ GenTree* Lowering::LowerSwitch(GenTree* node) unsigned lclNum = comp->lvaGrabTemp(true DEBUGARG("Lowering is creating a new local variable")); comp->lvaTable[lclNum].lvType = rhs->TypeGet(); - GenTreeLclVar* store = - new (comp, GT_STORE_LCL_VAR) GenTreeLclVar(GT_STORE_LCL_VAR, rhs->TypeGet(), lclNum, BAD_IL_OFFSET); - store->gtOp1 = rhs; - store->gtFlags = (rhs->gtFlags & GTF_COMMON_MASK); + GenTreeLclVar* store = new (comp, GT_STORE_LCL_VAR) GenTreeLclVar(GT_STORE_LCL_VAR, rhs->TypeGet(), lclNum); + store->gtOp1 = rhs; + store->gtFlags = (rhs->gtFlags & GTF_COMMON_MASK); store->gtFlags |= GTF_VAR_DEF; switchBBRange.InsertAfter(node, store); @@ -2070,9 +2069,8 @@ void Lowering::LowerFastTailCall(GenTreeCall* call) if (tmpLclNum != BAD_VAR_NUM) { assert(tmpType != TYP_UNDEF); - GenTreeLclVar* local = - new (comp, GT_LCL_VAR) GenTreeLclVar(GT_LCL_VAR, tmpType, callerArgLclNum, BAD_IL_OFFSET); - GenTree* assignExpr = comp->gtNewTempAssign(tmpLclNum, local); + GenTreeLclVar* local = new (comp, GT_LCL_VAR) GenTreeLclVar(GT_LCL_VAR, tmpType, callerArgLclNum); + GenTree* assignExpr = comp->gtNewTempAssign(tmpLclNum, local); ContainCheckRange(local, assignExpr); BlockRange().InsertBefore(firstPutArgStk, LIR::SeqTree(comp, assignExpr)); } @@ -3176,7 +3174,7 @@ GenTree* Lowering::LowerDelegateInvoke(GenTreeCall* call) // the control target is // [originalThis + firstTgtOffs] - GenTree* base = new (comp, GT_LCL_VAR) GenTreeLclVar(originalThisExpr->TypeGet(), lclNum, BAD_IL_OFFSET); + GenTree* base = new (comp, GT_LCL_VAR) GenTreeLclVar(originalThisExpr->TypeGet(), lclNum); unsigned targetOffs = comp->eeGetEEInfo()->offsetOfDelegateFirstTarget; GenTree* result = new (comp, GT_LEA) GenTreeAddrMode(TYP_REF, base, nullptr, 0, targetOffs); @@ -3262,7 +3260,7 @@ GenTree* Lowering::SetGCState(int state) const CORINFO_EE_INFO* pInfo = comp->eeGetEEInfo(); - GenTree* base = new (comp, GT_LCL_VAR) GenTreeLclVar(TYP_I_IMPL, comp->info.compLvFrameListRoot, -1); + GenTree* base = new (comp, GT_LCL_VAR) GenTreeLclVar(TYP_I_IMPL, comp->info.compLvFrameListRoot); GenTree* stateNode = new (comp, GT_CNS_INT) GenTreeIntCon(TYP_BYTE, state); GenTree* addr = new (comp, GT_LEA) GenTreeAddrMode(TYP_I_IMPL, base, nullptr, 1, pInfo->offsetOfGCState); @@ -3287,8 +3285,7 @@ GenTree* Lowering::CreateFrameLinkUpdate(FrameLinkAction action) const CORINFO_EE_INFO* pInfo = comp->eeGetEEInfo(); const CORINFO_EE_INFO::InlinedCallFrameInfo& callFrameInfo = pInfo->inlinedCallFrameInfo; - GenTree* TCB = new (comp, GT_LCL_VAR) GenTreeLclVar(GT_LCL_VAR, TYP_I_IMPL, comp->info.compLvFrameListRoot, - (IL_OFFSET)-1); // cast to resolve ambiguity. + GenTree* TCB = new (comp, GT_LCL_VAR) GenTreeLclVar(GT_LCL_VAR, TYP_I_IMPL, comp->info.compLvFrameListRoot); // Thread->m_pFrame GenTree* addr = new (comp, GT_LEA) GenTreeAddrMode(TYP_I_IMPL, TCB, nullptr, 1, pInfo->offsetOfThreadFrame); @@ -3395,8 +3392,7 @@ void Lowering::InsertPInvokeMethodProlog() noway_assert(varDsc->lvType == TYP_I_IMPL); GenTree* store = - new (comp, GT_STORE_LCL_VAR) GenTreeLclVar(GT_STORE_LCL_VAR, TYP_I_IMPL, comp->info.compLvFrameListRoot, - (IL_OFFSET)-1); // cast to resolve ambiguity. + new (comp, GT_STORE_LCL_VAR) GenTreeLclVar(GT_STORE_LCL_VAR, TYP_I_IMPL, comp->info.compLvFrameListRoot); store->gtOp.gtOp1 = call; store->gtFlags |= GTF_VAR_DEF; @@ -3563,8 +3559,8 @@ void Lowering::InsertPInvokeCallProlog(GenTreeCall* call) if (comp->opts.ShouldUsePInvokeHelpers()) { // First argument is the address of the frame variable. - GenTree* frameAddr = new (comp, GT_LCL_VAR_ADDR) - GenTreeLclVar(GT_LCL_VAR_ADDR, TYP_BYREF, comp->lvaInlinedPInvokeFrameVar, BAD_IL_OFFSET); + GenTree* frameAddr = + new (comp, GT_LCL_VAR_ADDR) GenTreeLclVar(GT_LCL_VAR_ADDR, TYP_BYREF, comp->lvaInlinedPInvokeFrameVar); // Insert call to CORINFO_HELP_JIT_PINVOKE_BEGIN GenTree* helperCall = @@ -3718,7 +3714,7 @@ void Lowering::InsertPInvokeCallEpilog(GenTreeCall* call) // First argument is the address of the frame variable. GenTree* frameAddr = - new (comp, GT_LCL_VAR) GenTreeLclVar(GT_LCL_VAR, TYP_BYREF, comp->lvaInlinedPInvokeFrameVar, BAD_IL_OFFSET); + new (comp, GT_LCL_VAR) GenTreeLclVar(GT_LCL_VAR, TYP_BYREF, comp->lvaInlinedPInvokeFrameVar); frameAddr->SetOperRaw(GT_LCL_VAR_ADDR); // Insert call to CORINFO_HELP_JIT_PINVOKE_END @@ -3962,7 +3958,7 @@ GenTree* Lowering::LowerVirtualVtableCall(GenTreeCall* call) } else { - local = new (comp, GT_LCL_VAR) GenTreeLclVar(GT_LCL_VAR, thisPtr->TypeGet(), lclNum, BAD_IL_OFFSET); + local = new (comp, GT_LCL_VAR) GenTreeLclVar(GT_LCL_VAR, thisPtr->TypeGet(), lclNum); } // pointer to virtual table = [REG_CALL_THIS + offs] diff --git a/src/jit/morph.cpp b/src/jit/morph.cpp index 8817c2d644..85f50d8855 100644 --- a/src/jit/morph.cpp +++ b/src/jit/morph.cpp @@ -2580,13 +2580,13 @@ GenTree* Compiler::fgInsertCommaFormTemp(GenTree** ppTree, CORINFO_CLASS_HANDLE // setting type of lcl vars created. GenTree* asg = gtNewTempAssign(lclNum, subTree); - GenTree* load = new (this, GT_LCL_VAR) GenTreeLclVar(subTree->TypeGet(), lclNum, BAD_IL_OFFSET); + GenTree* load = new (this, GT_LCL_VAR) GenTreeLclVar(subTree->TypeGet(), lclNum); GenTree* comma = gtNewOperNode(GT_COMMA, subTree->TypeGet(), asg, load); *ppTree = comma; - return new (this, GT_LCL_VAR) GenTreeLclVar(subTree->TypeGet(), lclNum, BAD_IL_OFFSET); + return new (this, GT_LCL_VAR) GenTreeLclVar(subTree->TypeGet(), lclNum); } //------------------------------------------------------------------------ @@ -4718,8 +4718,8 @@ GenTree* Compiler::fgMorphMultiregStructArg(GenTree* arg, fgArgTabEntry* fgEntry { // We can use the struct promoted field as the two arguments - GenTree* loLclVar = gtNewLclvNode(loVarNum, loType, loVarNum); - GenTree* hiLclVar = gtNewLclvNode(hiVarNum, hiType, hiVarNum); + GenTree* loLclVar = gtNewLclvNode(loVarNum, loType); + GenTree* hiLclVar = gtNewLclvNode(hiVarNum, hiType); // Create a new tree for 'arg' // replace the existing LDOBJ(ADDR(LCLVAR)) |