From 423cae3a1fdeb8ef975047b4969e983946c2a825 Mon Sep 17 00:00:00 2001 From: Bruce Forstall Date: Tue, 6 Jun 2017 16:37:40 -0700 Subject: [PATCH] Remove use of gtEffectiveVal in RyuJIT codegen This is not required in RyuJIT at the codegen phase: COMMA and value-producing NOPs are no longer in place. --- src/jit/codegenarm.cpp | 10 +++++----- src/jit/codegenarm64.cpp | 4 ++-- src/jit/codegenarmarch.cpp | 4 ++-- src/jit/codegenxarch.cpp | 2 +- src/jit/emitxarch.cpp | 2 +- src/jit/lsra.cpp | 4 ++-- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/jit/codegenarm.cpp b/src/jit/codegenarm.cpp index 124e994..d4d5b89 100644 --- a/src/jit/codegenarm.cpp +++ b/src/jit/codegenarm.cpp @@ -1054,7 +1054,7 @@ void CodeGen::genCodeForStoreLclFld(GenTreeLclFld* tree) // Ensure that lclVar nodes are typed correctly. assert(!varDsc->lvNormalizeOnStore() || targetType == genActualType(varDsc->TypeGet())); - GenTreePtr data = tree->gtOp1->gtEffectiveVal(); + GenTreePtr data = tree->gtOp1; instruction ins = ins_Store(targetType); emitAttr attr = emitTypeSize(targetType); if (data->isContainedIntOrIImmed()) @@ -1092,7 +1092,7 @@ void CodeGen::genCodeForStoreLclVar(GenTreeLclVar* tree) // Ensure that lclVar nodes are typed correctly. assert(!varDsc->lvNormalizeOnStore() || targetType == genActualType(varDsc->TypeGet())); - GenTreePtr data = tree->gtOp1->gtEffectiveVal(); + GenTreePtr data = tree->gtOp1; // var = call, where call returns a multi-reg return value // case is handled separately. @@ -1284,8 +1284,8 @@ void CodeGen::genCodeForCompare(GenTreeOp* tree) // TODO-ARM-CQ: Check for the case where we can simply transfer the carry bit to a register // (signed < or >= where targetReg != REG_NA) - GenTreePtr op1 = tree->gtOp1->gtEffectiveVal(); - GenTreePtr op2 = tree->gtOp2->gtEffectiveVal(); + GenTreePtr op1 = tree->gtOp1; + GenTreePtr op2 = tree->gtOp2; var_types op1Type = op1->TypeGet(); var_types op2Type = op2->TypeGet(); @@ -1350,7 +1350,7 @@ void CodeGen::genCodeForReturnTrap(GenTreeOp* tree) // this is nothing but a conditional call to CORINFO_HELP_STOP_FOR_GC // based on the contents of 'data' - GenTree* data = tree->gtOp1->gtEffectiveVal(); + GenTree* data = tree->gtOp1; genConsumeIfReg(data); GenTreeIntCon cns = intForm(TYP_INT, 0); getEmitter()->emitInsBinary(INS_cmp, emitTypeSize(TYP_INT), data, &cns); diff --git a/src/jit/codegenarm64.cpp b/src/jit/codegenarm64.cpp index d73f7ce..a1bec9c5 100644 --- a/src/jit/codegenarm64.cpp +++ b/src/jit/codegenarm64.cpp @@ -1647,7 +1647,7 @@ void CodeGen::genCodeForStoreLclFld(GenTreeLclFld* tree) // Ensure that lclVar nodes are typed correctly. assert(!varDsc->lvNormalizeOnStore() || targetType == genActualType(varDsc->TypeGet())); - GenTreePtr data = tree->gtOp1->gtEffectiveVal(); + GenTreePtr data = tree->gtOp1; genConsumeRegs(data); regNumber dataReg = REG_NA; @@ -1695,7 +1695,7 @@ void CodeGen::genCodeForStoreLclVar(GenTreeLclVar* tree) // Ensure that lclVar nodes are typed correctly. assert(!varDsc->lvNormalizeOnStore() || targetType == genActualType(varDsc->TypeGet())); - GenTreePtr data = tree->gtOp1->gtEffectiveVal(); + GenTreePtr data = tree->gtOp1; // var = call, where call returns a multi-reg return value // case is handled separately. diff --git a/src/jit/codegenarmarch.cpp b/src/jit/codegenarmarch.cpp index 37b9026..4cb6d6a 100644 --- a/src/jit/codegenarmarch.cpp +++ b/src/jit/codegenarmarch.cpp @@ -2447,7 +2447,7 @@ void CodeGen::genJumpKindsForTree(GenTreePtr cmpTree, emitJumpKind jmpKind[2], b jmpToTrueLabel[1] = true; // For integer comparisons just use genJumpKindForOper - if (!varTypeIsFloating(cmpTree->gtOp.gtOp1->gtEffectiveVal())) + if (!varTypeIsFloating(cmpTree->gtOp.gtOp1)) { CompareKind compareKind = ((cmpTree->gtFlags & GTF_UNSIGNED) != 0) ? CK_UNSIGNED : CK_SIGNED; jmpKind[0] = genJumpKindForOper(cmpTree->gtOper, compareKind); @@ -2556,7 +2556,7 @@ void CodeGen::genJumpKindsForTree(GenTreePtr cmpTree, emitJumpKind jmpKind[2], b // void CodeGen::genCodeForJumpTrue(GenTreePtr tree) { - GenTree* cmp = tree->gtOp.gtOp1->gtEffectiveVal(); + GenTree* cmp = tree->gtOp.gtOp1; assert(cmp->OperIsCompare()); assert(compiler->compCurBB->bbJumpKind == BBJ_COND); diff --git a/src/jit/codegenxarch.cpp b/src/jit/codegenxarch.cpp index 6bb1242..1ebbda1 100644 --- a/src/jit/codegenxarch.cpp +++ b/src/jit/codegenxarch.cpp @@ -5841,7 +5841,7 @@ void CodeGen::genJumpKindsForTree(GenTreePtr cmpTree, emitJumpKind jmpKind[2], b jmpToTrueLabel[1] = true; // For integer comparisons just use genJumpKindForOper - if (!varTypeIsFloating(cmpTree->gtOp.gtOp1->gtEffectiveVal())) + if (!varTypeIsFloating(cmpTree->gtOp.gtOp1)) { CompareKind compareKind = ((cmpTree->gtFlags & GTF_UNSIGNED) != 0) ? CK_UNSIGNED : CK_SIGNED; jmpKind[0] = genJumpKindForOper(cmpTree->gtOper, compareKind); diff --git a/src/jit/emitxarch.cpp b/src/jit/emitxarch.cpp index e60366a..5a0abe7 100644 --- a/src/jit/emitxarch.cpp +++ b/src/jit/emitxarch.cpp @@ -2738,7 +2738,7 @@ void emitter::emitInsMov(instruction ins, emitAttr attr, GenTree* node) case GT_STORE_LCL_VAR: { GenTreeLclVarCommon* varNode = node->AsLclVarCommon(); - GenTree* data = varNode->gtOp.gtOp1->gtEffectiveVal(); + GenTree* data = varNode->gtOp.gtOp1; codeGen->inst_set_SV_var(varNode); assert(varNode->gtRegNum == REG_NA); // stack store diff --git a/src/jit/lsra.cpp b/src/jit/lsra.cpp index 72cb78c..4fd27b2 100644 --- a/src/jit/lsra.cpp +++ b/src/jit/lsra.cpp @@ -8791,7 +8791,7 @@ void LinearScan::resolveRegisters() } if (indNode != nullptr) { - GenTreePtr addrNode = indNode->gtOp.gtOp1->gtEffectiveVal(); + GenTreePtr addrNode = indNode->gtOp.gtOp1; if (addrNode->OperGet() != GT_ARR_ELEM) { addrNode->gtRsvdRegs |= currentRefPosition->registerAssignment; @@ -8801,7 +8801,7 @@ void LinearScan::resolveRegisters() if (treeNode->OperGet() == GT_ARR_ELEM) { // TODO-Review: See WORKAROUND ALERT in buildRefPositionsForNode() - GenTreePtr firstIndexTree = treeNode->gtArrElem.gtArrInds[0]->gtEffectiveVal(); + GenTreePtr firstIndexTree = treeNode->gtArrElem.gtArrInds[0]; assert(firstIndexTree != nullptr); if (firstIndexTree->IsLocal() && (firstIndexTree->gtFlags & GTF_VAR_DEATH) == 0) { -- 2.7.4