@@ -1137,7 +1137,7 @@ AssertionIndex Compiler::optCreateAssertion(GenTree* op1, GenTree* op2, optAsser
1137
1137
op1 = op1->gtEffectiveVal ();
1138
1138
1139
1139
ssize_t offset = 0 ;
1140
- while (( op1->gtOper == GT_ADD) && ( op1->gtType == TYP_BYREF))
1140
+ while (op1->OperIs ( GT_ADD) && op1->TypeIs ( TYP_BYREF))
1141
1141
{
1142
1142
if (op1->gtGetOp2 ()->IsCnsIntOrI ())
1143
1143
{
@@ -1184,7 +1184,7 @@ AssertionIndex Compiler::optCreateAssertion(GenTree* op1, GenTree* op2, optAsser
1184
1184
1185
1185
{
1186
1186
/* Skip over a GT_COMMA node(s), if necessary */
1187
- while (op2->gtOper == GT_COMMA)
1187
+ while (op2->OperIs ( GT_COMMA) )
1188
1188
{
1189
1189
op2 = op2->AsOp ()->gtOp2 ;
1190
1190
}
@@ -1229,7 +1229,7 @@ AssertionIndex Compiler::optCreateAssertion(GenTree* op1, GenTree* op2, optAsser
1229
1229
assertion.op2 .kind = op2Kind;
1230
1230
assertion.op2 .vn = optConservativeNormalVN (op2);
1231
1231
1232
- if (op2->gtOper == GT_CNS_INT)
1232
+ if (op2->OperIs ( GT_CNS_INT) )
1233
1233
{
1234
1234
ssize_t iconVal = op2->AsIntCon ()->IconValue ();
1235
1235
if (varTypeIsSmall (lclVar) && op1->OperIs (GT_STORE_LCL_VAR))
@@ -1245,7 +1245,7 @@ AssertionIndex Compiler::optCreateAssertion(GenTree* op1, GenTree* op2, optAsser
1245
1245
}
1246
1246
else
1247
1247
{
1248
- noway_assert (op2->gtOper == GT_CNS_DBL);
1248
+ noway_assert (op2->OperIs ( GT_CNS_DBL) );
1249
1249
/* If we have an NaN value then don't record it */
1250
1250
if (FloatingPointUtils::isNaN (op2->AsDblCon ()->DconValue ()))
1251
1251
{
@@ -1441,7 +1441,7 @@ bool Compiler::optIsTreeKnownIntValue(bool vnBased, GenTree* tree, ssize_t* pCon
1441
1441
// Is Local assertion prop?
1442
1442
if (!vnBased)
1443
1443
{
1444
- if (tree->OperGet () == GT_CNS_INT)
1444
+ if (tree->OperIs ( GT_CNS_INT) )
1445
1445
{
1446
1446
*pConstant = tree->AsIntCon ()->IconValue ();
1447
1447
*pFlags = tree->GetIconHandleFlag ();
@@ -2062,25 +2062,25 @@ AssertionInfo Compiler::optAssertionGenJtrue(GenTree* tree)
2062
2062
}
2063
2063
2064
2064
// Check for op1 or op2 to be lcl var and if so, keep it in op1.
2065
- if (( op1->gtOper != GT_LCL_VAR) && ( op2->gtOper == GT_LCL_VAR))
2065
+ if (! op1->OperIs ( GT_LCL_VAR) && op2->OperIs ( GT_LCL_VAR))
2066
2066
{
2067
2067
std::swap (op1, op2);
2068
2068
}
2069
2069
2070
2070
// If op1 is lcl and op2 is const or lcl, create assertion.
2071
- if (( op1->gtOper == GT_LCL_VAR) && (op2->OperIsConst () || ( op2->gtOper == GT_LCL_VAR))) // Fix for Dev10 851483
2071
+ if (op1->OperIs ( GT_LCL_VAR) && (op2->OperIsConst () || op2->OperIs ( GT_LCL_VAR))) // Fix for Dev10 851483
2072
2072
{
2073
2073
// Watch out for cases where long local(s) are implicitly truncated.
2074
2074
//
2075
2075
LclVarDsc* const lcl1Dsc = lvaGetDesc (op1->AsLclVarCommon ());
2076
- if (( lcl1Dsc->TypeGet () == TYP_LONG) && ( op1->TypeGet () != TYP_LONG))
2076
+ if (lcl1Dsc->TypeIs ( TYP_LONG) && ! op1->TypeIs ( TYP_LONG))
2077
2077
{
2078
2078
return NO_ASSERTION_INDEX;
2079
2079
}
2080
2080
if (op2->OperIs (GT_LCL_VAR))
2081
2081
{
2082
2082
LclVarDsc* const lcl2Dsc = lvaGetDesc (op2->AsLclVarCommon ());
2083
- if (( lcl2Dsc->TypeGet () == TYP_LONG) && ( op2->TypeGet () != TYP_LONG))
2083
+ if (lcl2Dsc->TypeIs ( TYP_LONG) && ! op2->TypeIs ( TYP_LONG))
2084
2084
{
2085
2085
return NO_ASSERTION_INDEX;
2086
2086
}
@@ -2101,19 +2101,19 @@ AssertionInfo Compiler::optAssertionGenJtrue(GenTree* tree)
2101
2101
}
2102
2102
2103
2103
// Check op1 and op2 for an indirection of a GT_LCL_VAR and keep it in op1.
2104
- if ((( op1->gtOper != GT_IND) || ( op1->AsOp ()->gtOp1 ->gtOper != GT_LCL_VAR)) &&
2105
- (( op2->gtOper == GT_IND) && ( op2->AsOp ()->gtOp1 ->gtOper == GT_LCL_VAR)))
2104
+ if ((! op1->OperIs ( GT_IND) || ! op1->AsOp ()->gtOp1 ->OperIs ( GT_LCL_VAR)) &&
2105
+ (op2->OperIs ( GT_IND) && op2->AsOp ()->gtOp1 ->OperIs ( GT_LCL_VAR)))
2106
2106
{
2107
2107
std::swap (op1, op2);
2108
2108
}
2109
2109
// If op1 is ind, then extract op1's oper.
2110
- if (( op1->gtOper == GT_IND) && ( op1->AsOp ()->gtOp1 ->gtOper == GT_LCL_VAR))
2110
+ if (op1->OperIs ( GT_IND) && op1->AsOp ()->gtOp1 ->OperIs ( GT_LCL_VAR))
2111
2111
{
2112
2112
return optCreateJtrueAssertions (op1, op2, assertionKind);
2113
2113
}
2114
2114
2115
2115
// Look for a call to an IsInstanceOf helper compared to a nullptr
2116
- if (( op2->gtOper != GT_CNS_INT) && ( op1->gtOper == GT_CNS_INT))
2116
+ if (! op2->OperIs ( GT_CNS_INT) && op1->OperIs ( GT_CNS_INT))
2117
2117
{
2118
2118
std::swap (op1, op2);
2119
2119
}
@@ -2757,7 +2757,7 @@ GenTree* Compiler::optVNBasedFoldExpr(BasicBlock* block, GenTree* parent, GenTre
2757
2757
//
2758
2758
GenTree* Compiler::optVNBasedFoldConstExpr (BasicBlock* block, GenTree* parent, GenTree* tree)
2759
2759
{
2760
- if (tree->OperGet () == GT_JTRUE)
2760
+ if (tree->OperIs ( GT_JTRUE) )
2761
2761
{
2762
2762
// Treat JTRUE separately to extract side effects into respective statements rather
2763
2763
// than using a COMMA separated op1.
@@ -2797,7 +2797,7 @@ GenTree* Compiler::optVNBasedFoldConstExpr(BasicBlock* block, GenTree* parent, G
2797
2797
{
2798
2798
float value = vnStore->ConstantValue <float >(vnCns);
2799
2799
2800
- if (tree->TypeGet () == TYP_INT)
2800
+ if (tree->TypeIs ( TYP_INT) )
2801
2801
{
2802
2802
// Same sized reinterpretation of bits to integer
2803
2803
conValTree = gtNewIconNode (*(reinterpret_cast <int *>(&value)));
@@ -2815,7 +2815,7 @@ GenTree* Compiler::optVNBasedFoldConstExpr(BasicBlock* block, GenTree* parent, G
2815
2815
{
2816
2816
double value = vnStore->ConstantValue <double >(vnCns);
2817
2817
2818
- if (tree->TypeGet () == TYP_LONG)
2818
+ if (tree->TypeIs ( TYP_LONG) )
2819
2819
{
2820
2820
conValTree = gtNewLconNode (*(reinterpret_cast <INT64*>(&value)));
2821
2821
}
@@ -2878,7 +2878,7 @@ GenTree* Compiler::optVNBasedFoldConstExpr(BasicBlock* block, GenTree* parent, G
2878
2878
2879
2879
case TYP_REF:
2880
2880
{
2881
- if (tree->TypeGet () == TYP_REF)
2881
+ if (tree->TypeIs ( TYP_REF) )
2882
2882
{
2883
2883
const size_t value = vnStore->ConstantValue <size_t >(vnCns);
2884
2884
if (value == 0 )
@@ -3724,7 +3724,7 @@ GenTree* Compiler::optAssertionProp_LocalStore(ASSERT_VALARG_TP assertions, GenT
3724
3724
// does not kill the zerobj assertion for s.
3725
3725
//
3726
3726
unsigned const dstLclNum = store->GetLclNum ();
3727
- bool const dstLclIsStruct = lvaGetDesc (dstLclNum)->TypeGet () == TYP_STRUCT;
3727
+ bool const dstLclIsStruct = lvaGetDesc (dstLclNum)->TypeIs ( TYP_STRUCT) ;
3728
3728
AssertionIndex const dstIndex =
3729
3729
optLocalAssertionIsEqualOrNotEqual (O1K_LCLVAR, dstLclNum, dstLclIsStruct ? O2K_ZEROOBJ : O2K_CONST_INT, 0 ,
3730
3730
assertions);
@@ -4474,19 +4474,19 @@ GenTree* Compiler::optAssertionPropGlobal_RelOp(ASSERT_VALARG_TP assertions,
4474
4474
{
4475
4475
printf (" %d\n " , vnStore->ConstantValue <int >(vnCns));
4476
4476
}
4477
- else if (op1->TypeGet () == TYP_LONG)
4477
+ else if (op1->TypeIs ( TYP_LONG) )
4478
4478
{
4479
4479
printf (" %lld\n " , vnStore->ConstantValue <INT64>(vnCns));
4480
4480
}
4481
- else if (op1->TypeGet () == TYP_DOUBLE)
4481
+ else if (op1->TypeIs ( TYP_DOUBLE) )
4482
4482
{
4483
4483
printf (" %f\n " , vnStore->ConstantValue <double >(vnCns));
4484
4484
}
4485
- else if (op1->TypeGet () == TYP_FLOAT)
4485
+ else if (op1->TypeIs ( TYP_FLOAT) )
4486
4486
{
4487
4487
printf (" %f\n " , vnStore->ConstantValue <float >(vnCns));
4488
4488
}
4489
- else if (op1->TypeGet () == TYP_REF)
4489
+ else if (op1->TypeIs ( TYP_REF) )
4490
4490
{
4491
4491
// The only constant of TYP_REF that ValueNumbering supports is 'null'
4492
4492
if (vnStore->ConstantValue <size_t >(vnCns) == 0 )
@@ -4498,7 +4498,7 @@ GenTree* Compiler::optAssertionPropGlobal_RelOp(ASSERT_VALARG_TP assertions,
4498
4498
printf (" %d (gcref)\n " , static_cast <target_ssize_t >(vnStore->ConstantValue <size_t >(vnCns)));
4499
4499
}
4500
4500
}
4501
- else if (op1->TypeGet () == TYP_BYREF)
4501
+ else if (op1->TypeIs ( TYP_BYREF) )
4502
4502
{
4503
4503
printf (" %d (byref)\n " , static_cast <target_ssize_t >(vnStore->ConstantValue <size_t >(vnCns)));
4504
4504
}
@@ -4519,7 +4519,7 @@ GenTree* Compiler::optAssertionPropGlobal_RelOp(ASSERT_VALARG_TP assertions,
4519
4519
op1->gtFlags |= (vnStore->GetHandleFlags (vnCns) & GTF_ICON_HDL_MASK);
4520
4520
}
4521
4521
}
4522
- else if (op1->TypeGet () == TYP_LONG)
4522
+ else if (op1->TypeIs ( TYP_LONG) )
4523
4523
{
4524
4524
op1->BashToConst (vnStore->ConstantValue <INT64>(vnCns));
4525
4525
@@ -4528,7 +4528,7 @@ GenTree* Compiler::optAssertionPropGlobal_RelOp(ASSERT_VALARG_TP assertions,
4528
4528
op1->gtFlags |= (vnStore->GetHandleFlags (vnCns) & GTF_ICON_HDL_MASK);
4529
4529
}
4530
4530
}
4531
- else if (op1->TypeGet () == TYP_DOUBLE)
4531
+ else if (op1->TypeIs ( TYP_DOUBLE) )
4532
4532
{
4533
4533
double constant = vnStore->ConstantValue <double >(vnCns);
4534
4534
op1->BashToConst (constant);
@@ -4539,19 +4539,19 @@ GenTree* Compiler::optAssertionPropGlobal_RelOp(ASSERT_VALARG_TP assertions,
4539
4539
// assertion we have made.
4540
4540
allowReverse = !FloatingPointUtils::isNaN (constant);
4541
4541
}
4542
- else if (op1->TypeGet () == TYP_FLOAT)
4542
+ else if (op1->TypeIs ( TYP_FLOAT) )
4543
4543
{
4544
4544
float constant = vnStore->ConstantValue <float >(vnCns);
4545
4545
op1->BashToConst (constant);
4546
4546
4547
4547
// See comments for TYP_DOUBLE.
4548
4548
allowReverse = !FloatingPointUtils::isNaN (constant);
4549
4549
}
4550
- else if (op1->TypeGet () == TYP_REF)
4550
+ else if (op1->TypeIs ( TYP_REF) )
4551
4551
{
4552
4552
op1->BashToConst (static_cast <target_ssize_t >(vnStore->ConstantValue <size_t >(vnCns)), TYP_REF);
4553
4553
}
4554
- else if (op1->TypeGet () == TYP_BYREF)
4554
+ else if (op1->TypeIs ( TYP_BYREF) )
4555
4555
{
4556
4556
op1->BashToConst (static_cast <target_ssize_t >(vnStore->ConstantValue <size_t >(vnCns)), TYP_BYREF);
4557
4557
}
@@ -4564,7 +4564,7 @@ GenTree* Compiler::optAssertionPropGlobal_RelOp(ASSERT_VALARG_TP assertions,
4564
4564
4565
4565
// set foldResult to either 0 or 1
4566
4566
bool foldResult = assertionKindIsEqual;
4567
- if (tree->gtOper == GT_NE)
4567
+ if (tree->OperIs ( GT_NE) )
4568
4568
{
4569
4569
foldResult = !foldResult;
4570
4570
}
@@ -4644,19 +4644,19 @@ GenTree* Compiler::optAssertionPropGlobal_RelOp(ASSERT_VALARG_TP assertions,
4644
4644
*/
4645
4645
GenTree* Compiler::optAssertionPropLocal_RelOp (ASSERT_VALARG_TP assertions, GenTree* tree, Statement* stmt)
4646
4646
{
4647
- assert (tree->OperGet () == GT_EQ || tree->OperGet () == GT_NE);
4647
+ assert (tree->OperIs (GT_EQ) || tree->OperIs ( GT_NE) );
4648
4648
4649
4649
GenTree* op1 = tree->AsOp ()->gtOp1 ;
4650
4650
GenTree* op2 = tree->AsOp ()->gtOp2 ;
4651
4651
4652
4652
// For Local AssertionProp we only can fold when op1 is a GT_LCL_VAR
4653
- if (op1->gtOper != GT_LCL_VAR)
4653
+ if (! op1->OperIs ( GT_LCL_VAR) )
4654
4654
{
4655
4655
return nullptr ;
4656
4656
}
4657
4657
4658
4658
// For Local AssertionProp we only can fold when op2 is a GT_CNS_INT
4659
- if (op2->gtOper != GT_CNS_INT)
4659
+ if (! op2->OperIs ( GT_CNS_INT) )
4660
4660
{
4661
4661
return nullptr ;
4662
4662
}
@@ -4716,7 +4716,7 @@ GenTree* Compiler::optAssertionPropLocal_RelOp(ASSERT_VALARG_TP assertions, GenT
4716
4716
4717
4717
// Return either CNS_INT 0 or CNS_INT 1.
4718
4718
bool foldResult = (constantIsEqual == assertionKindIsEqual);
4719
- if (tree->gtOper == GT_NE)
4719
+ if (tree->OperIs ( GT_NE) )
4720
4720
{
4721
4721
foldResult = !foldResult;
4722
4722
}
@@ -6101,7 +6101,7 @@ ASSERT_TP* Compiler::optComputeAssertionGen()
6101
6101
{
6102
6102
for (GenTree* const tree : stmt->TreeList ())
6103
6103
{
6104
- if (tree->gtOper == GT_JTRUE)
6104
+ if (tree->OperIs ( GT_JTRUE) )
6105
6105
{
6106
6106
// A GT_TRUE is always the last node in a tree, so we can break here
6107
6107
assert ((tree->gtNext == nullptr ) && (stmt->GetNextStmt () == nullptr ));
@@ -6324,7 +6324,7 @@ Compiler::fgWalkResult Compiler::optVNBasedFoldCurStmt(BasicBlock* block,
6324
6324
6325
6325
// Don't propagate floating-point constants into a TYP_STRUCT LclVar
6326
6326
// This can occur for HFA return values (see hfa_sf3E_r.exe)
6327
- if (tree->TypeGet () == TYP_STRUCT)
6327
+ if (tree->TypeIs ( TYP_STRUCT) )
6328
6328
{
6329
6329
return WALK_CONTINUE;
6330
6330
}
@@ -6445,7 +6445,7 @@ void Compiler::optVnNonNullPropCurStmt(BasicBlock* block, Statement* stmt, GenTr
6445
6445
{
6446
6446
ASSERT_TP empty = BitVecOps::UninitVal ();
6447
6447
GenTree* newTree = nullptr ;
6448
- if (tree->OperGet () == GT_CALL)
6448
+ if (tree->OperIs ( GT_CALL) )
6449
6449
{
6450
6450
newTree = optNonNullAssertionProp_Call (empty, tree->AsCall ());
6451
6451
}
0 commit comments