diff options
author | Brian Sullivan <briansul@microsoft.com> | 2019-04-16 09:52:11 -0700 |
---|---|---|
committer | Brian Sullivan <briansul@microsoft.com> | 2019-04-19 16:50:05 -0700 |
commit | 75ae3b5b05f4ab9639fbc24871aafdc7d706c35f (patch) | |
tree | 74af295171dfb83b4c6a978af7d3f42c8aa285c3 /src/jit/valuenum.cpp | |
parent | 6a7bf9c3af1d3d6e78d7247eef07c48c89a57112 (diff) | |
download | coreclr-75ae3b5b05f4ab9639fbc24871aafdc7d706c35f.tar.gz coreclr-75ae3b5b05f4ab9639fbc24871aafdc7d706c35f.tar.bz2 coreclr-75ae3b5b05f4ab9639fbc24871aafdc7d706c35f.zip |
Fixes for Zero Offset field sequence tracking
- A GT_LCL_VAR may have a zeroOffset field
- Add an assert to prevent building field sequences with duplicates
- Fix fgMorphField when we have a zero offset field
Improve fgAddFieldSeqForZeroOffset
- Add JItDump info
- Handle GT_LCL_FLD
Changing the sign of an int constant also remove any field sequence information.
Added method header comment for fgAddFieldSeqForZeroOffset
Changed when we call fgAddFieldSeqForZeroOffset to be before the call to fgMorphSmpOp.
Prefer calling fgAddFieldSeqForZeroOffset() to GetZeroOffsetFieldMap()->Set()
Diffstat (limited to 'src/jit/valuenum.cpp')
-rw-r--r-- | src/jit/valuenum.cpp | 11 |
1 files changed, 0 insertions, 11 deletions
diff --git a/src/jit/valuenum.cpp b/src/jit/valuenum.cpp index 03d6bac900..a15a1cbef1 100644 --- a/src/jit/valuenum.cpp +++ b/src/jit/valuenum.cpp @@ -7510,17 +7510,6 @@ void Compiler::fgValueNumberTree(GenTree* tree) ValueNum arrVN = funcApp.m_args[1]; ValueNum inxVN = funcApp.m_args[2]; FieldSeqNode* fldSeq = vnStore->FieldSeqVNToFieldSeq(funcApp.m_args[3]); - - if (arg->gtOper != GT_LCL_VAR) - { - // Does the child of the GT_IND 'arg' have an associated zero-offset field sequence? - FieldSeqNode* addrFieldSeq = nullptr; - if (GetZeroOffsetFieldMap()->Lookup(arg, &addrFieldSeq)) - { - fldSeq = GetFieldSeqStore()->Append(addrFieldSeq, fldSeq); - } - } - #ifdef DEBUG if (verbose) { |