Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
Prev Previous commit
Next Next commit
Delete GTF_RELOP_QMARK
Unused.
  • Loading branch information
SingleAccretion committed Nov 13, 2021
commit 890b6236cd905795a15aeffd84e676e0c96b5778
4 changes: 0 additions & 4 deletions src/coreclr/jit/compiler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9252,10 +9252,6 @@ void cTreeFlags(Compiler* comp, GenTree* tree)
{
chars += printf("[RELOP_JMP_USED]");
}
if (tree->gtFlags & GTF_RELOP_QMARK)
{
chars += printf("[RELOP_QMARK]");
}
break;

case GT_QMARK:
Expand Down
27 changes: 4 additions & 23 deletions src/coreclr/jit/gentree.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5972,8 +5972,7 @@ GenTree* Compiler::gtNewOperNode(genTreeOps oper, var_types type, GenTree* op1,

GenTreeQmark* Compiler::gtNewQmarkNode(var_types type, GenTree* cond, GenTreeColon* colon)
{
compQmarkUsed = true;
cond->gtFlags |= GTF_RELOP_QMARK;
compQmarkUsed = true;
GenTreeQmark* result = new (this, GT_QMARK) GenTreeQmark(type, cond, colon);
#ifdef DEBUG
if (compQmarkRationalized)
Expand Down Expand Up @@ -8149,18 +8148,6 @@ GenTree* Compiler::gtCloneExpr(
/* GTF_NODE_MASK should not be propagated from 'tree' to 'copy' */
addFlags &= ~GTF_NODE_MASK;
#endif
// Some other flags depend on the context of the expression, and should not be preserved.
// For example, GTF_RELOP_QMARK:
if (copy->OperKind() & GTK_RELOP)
{
addFlags &= ~GTF_RELOP_QMARK;
}
// On the other hand, if we're creating such a context, restore this flag.
if (copy->OperGet() == GT_QMARK)
{
copy->AsOp()->gtOp1->gtFlags |= GTF_RELOP_QMARK;
}

copy->gtFlags |= addFlags;

// Update side effect flags since they may be different from the source side effect flags.
Expand Down Expand Up @@ -10449,12 +10436,6 @@ void Compiler::gtDispNode(GenTree* tree, IndentStack* indentStack, __in __in_z _
--msgLength;
break;
}
if (tree->gtFlags & GTF_RELOP_QMARK)
{
printf("Q");
--msgLength;
break;
}
goto DASH;

case GT_JCMP:
Expand Down Expand Up @@ -12954,7 +12935,7 @@ GenTree* Compiler::gtFoldTypeCompare(GenTree* tree)
GenTree* compare = gtCreateHandleCompare(oper, op1ClassFromHandle, op2ClassFromHandle, inliningKind);

// Drop any now-irrelvant flags
compare->gtFlags |= tree->gtFlags & (GTF_RELOP_JMP_USED | GTF_RELOP_QMARK | GTF_DONT_CSE);
compare->gtFlags |= tree->gtFlags & (GTF_RELOP_JMP_USED | GTF_DONT_CSE);

return compare;
}
Expand Down Expand Up @@ -12994,7 +12975,7 @@ GenTree* Compiler::gtFoldTypeCompare(GenTree* tree)
GenTree* compare = gtCreateHandleCompare(oper, arg1, arg2, inliningKind);

// Drop any now-irrelvant flags
compare->gtFlags |= tree->gtFlags & (GTF_RELOP_JMP_USED | GTF_RELOP_QMARK | GTF_DONT_CSE);
compare->gtFlags |= tree->gtFlags & (GTF_RELOP_JMP_USED | GTF_DONT_CSE);

return compare;
}
Expand Down Expand Up @@ -13092,7 +13073,7 @@ GenTree* Compiler::gtFoldTypeCompare(GenTree* tree)
GenTree* const compare = gtCreateHandleCompare(oper, objMT, knownMT, typeCheckInliningResult);

// Drop any now irrelevant flags
compare->gtFlags |= tree->gtFlags & (GTF_RELOP_JMP_USED | GTF_RELOP_QMARK | GTF_DONT_CSE);
compare->gtFlags |= tree->gtFlags & (GTF_RELOP_JMP_USED | GTF_DONT_CSE);

// And we're done
return compare;
Expand Down
1 change: 0 additions & 1 deletion src/coreclr/jit/gentree.h
Original file line number Diff line number Diff line change
Expand Up @@ -526,7 +526,6 @@ enum GenTreeFlags : unsigned int

GTF_RELOP_NAN_UN = 0x80000000, // GT_<relop> -- Is branch taken if ops are NaN?
GTF_RELOP_JMP_USED = 0x40000000, // GT_<relop> -- result of compare used for jump or ?:
GTF_RELOP_QMARK = 0x20000000, // GT_<relop> -- the node is the condition for ?:
GTF_RELOP_ZTT = 0x08000000, // GT_<relop> -- Loop test cloned for converting while-loops into do-while
// with explicit "loop test" in the header block.

Expand Down
13 changes: 1 addition & 12 deletions src/coreclr/jit/morph.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11013,7 +11013,6 @@ GenTree* Compiler::fgMorphSmpOp(GenTree* tree, MorphAddrContext* mac)

if (op1->OperKind() & GTK_RELOP)
{
noway_assert((oper == GT_JTRUE) || (op1->gtFlags & GTF_RELOP_QMARK));
/* Mark the comparison node with GTF_RELOP_JMP_USED so it knows that it does
not need to materialize the result as a 0 or 1. */

Expand Down Expand Up @@ -13488,7 +13487,7 @@ GenTree* Compiler::fgOptimizeEqualityComparisonWithConst(GenTreeOp* cmp)
}

noway_assert((op1->gtFlags & GTF_RELOP_JMP_USED) == 0);
op1->gtFlags |= cmp->gtFlags & (GTF_RELOP_JMP_USED | GTF_RELOP_QMARK | GTF_DONT_CSE);
op1->gtFlags |= cmp->gtFlags & (GTF_RELOP_JMP_USED | GTF_DONT_CSE);
op1->SetVNsFromNode(cmp);

DEBUG_DESTROY_NODE(cmp);
Expand Down Expand Up @@ -16358,9 +16357,6 @@ void Compiler::fgExpandQmarkForCastInstOf(BasicBlock* block, Statement* stmt)
cond2Expr = nestedQmark->gtGetOp1();
true2Expr = nestedQmark->gtGetOp2()->AsColon()->ThenNode();
false2Expr = nestedQmark->gtGetOp2()->AsColon()->ElseNode();

assert(cond2Expr->gtFlags & GTF_RELOP_QMARK);
cond2Expr->gtFlags &= ~GTF_RELOP_QMARK;
}
else
{
Expand All @@ -16378,10 +16374,6 @@ void Compiler::fgExpandQmarkForCastInstOf(BasicBlock* block, Statement* stmt)
}
assert(false2Expr->OperGet() == trueExpr->OperGet());

// Clear flags as they are now going to be part of JTRUE.
assert(condExpr->gtFlags & GTF_RELOP_QMARK);
condExpr->gtFlags &= ~GTF_RELOP_QMARK;

// Create the chain of blocks. See method header comment.
// The order of blocks after this is the following:
// block ... asgBlock ... cond1Block ... cond2Block ... helperBlock ... remainderBlock
Expand Down Expand Up @@ -16552,9 +16544,6 @@ void Compiler::fgExpandQmarkStmt(BasicBlock* block, Statement* stmt)
GenTree* trueExpr = qmark->gtGetOp2()->AsColon()->ThenNode();
GenTree* falseExpr = qmark->gtGetOp2()->AsColon()->ElseNode();

assert(condExpr->gtFlags & GTF_RELOP_QMARK);
condExpr->gtFlags &= ~GTF_RELOP_QMARK;

assert(!varTypeIsFloating(condExpr->TypeGet()));

bool hasTrueExpr = (trueExpr->OperGet() != GT_NOP);
Expand Down