Enable global constant propagation for GT_LCL_FLD (#61209)
authorSingleAccretion <62474226+SingleAccretion@users.noreply.github.com>
Mon, 8 Nov 2021 11:30:55 +0000 (14:30 +0300)
committerGitHub <noreply@github.com>
Mon, 8 Nov 2021 11:30:55 +0000 (14:30 +0300)
These are leaf nodes without side effects, and we can
sometimes evaluate them in VN, so it does not seem like
there is any reason not to enable propagation for them.

src/coreclr/jit/assertionprop.cpp

index 2c286ab..75286fe 100644 (file)
@@ -5605,8 +5605,9 @@ Compiler::fgWalkResult Compiler::optVNConstantPropCurStmt(BasicBlock* block, Sta
             break;
 
         case GT_LCL_VAR:
+        case GT_LCL_FLD:
             // Make sure the local variable is an R-value.
-            if ((tree->gtFlags & (GTF_VAR_DEF | GTF_DONT_CSE)))
+            if ((tree->gtFlags & (GTF_VAR_USEASG | GTF_VAR_DEF | GTF_DONT_CSE)) != GTF_EMPTY)
             {
                 return WALK_CONTINUE;
             }