Simplify lclNum fetching and a few assertions.
authorPat Gavlin <pagavlin@microsoft.com>
Fri, 6 Jan 2017 22:12:35 +0000 (14:12 -0800)
committerPat Gavlin <pagavlin@microsoft.com>
Fri, 6 Jan 2017 22:12:35 +0000 (14:12 -0800)
Commit migrated from https://github.com/dotnet/coreclr/commit/a5bfd0769ec7cce40c2c5717663b34e2059d75a8

src/coreclr/src/jit/liveness.cpp

index 1b19785..b73a9fa 100644 (file)
  */
 void Compiler::fgMarkUseDef(GenTreeLclVarCommon* tree)
 {
-    unsigned lclNum;
-    if (tree->gtOper == GT_LCL_VAR || tree->gtOper == GT_LCL_VAR_ADDR || tree->gtOper == GT_STORE_LCL_VAR)
-    {
-        lclNum = tree->gtLclNum;
-    }
-    else
-    {
-        assert(tree->OperIsLocalField());
-        lclNum = tree->gtLclFld.gtLclNum;
-    }
+    assert((tree->OperIsLocal() && (tree->OperGet() != GT_PHI_ARG)) || tree->OperIsLocalAddr());
 
+    const unsigned lclNum = tree->gtLclNum;
     assert(lclNum < lvaCount);
-    LclVarDsc* const varDsc = lvaTable + lclNum;
+
+    LclVarDsc* const varDsc = &lvaTable[lclNum];
 
     // We should never encounter a reference to a lclVar that has a zero refCnt.
     if (varDsc->lvRefCnt == 0 && (!varTypeIsPromotable(varDsc) || !varDsc->lvPromoted))