diff options
author | Mike Danes <onemihaid@hotmail.com> | 2017-11-30 23:47:03 +0200 |
---|---|---|
committer | Mike Danes <onemihaid@hotmail.com> | 2018-05-19 01:11:08 +0300 |
commit | 026abe216b39550ab6acb80ecb8927904e194886 (patch) | |
tree | 8d9da646a03a710d7dc87bbaf9220c417d22c58e /src/jit/gentree.cpp | |
parent | 73a175f06746d386084af5d3362994c1077bc6f5 (diff) | |
download | coreclr-026abe216b39550ab6acb80ecb8927904e194886.tar.gz coreclr-026abe216b39550ab6acb80ecb8927904e194886.tar.bz2 coreclr-026abe216b39550ab6acb80ecb8927904e194886.zip |
Remove useless IndirectAssignmentAnnotation
This annotation is supposed to be used by SSA and VN but that does not actually happen because fgMorphCopyBlock also marks the destination local as address exposed.
Also, even if the local wasn't address exposed there are other parts of the JIT that should probably use this annotation but currently they do not:
* Copy propagation attempts to mirror SSA renaming but it ignores IndirectAssignmentAnnotation.
* Liveness also doesn't pay attention to IndirectAssignmentAnnotation. A comment in fgMorphCopyBlock even gives liveness as the reason why the destination local is address exposed.
Diffstat (limited to 'src/jit/gentree.cpp')
-rw-r--r-- | src/jit/gentree.cpp | 27 |
1 files changed, 0 insertions, 27 deletions
diff --git a/src/jit/gentree.cpp b/src/jit/gentree.cpp index 284b420120..46ec3f4d18 100644 --- a/src/jit/gentree.cpp +++ b/src/jit/gentree.cpp @@ -7992,19 +7992,6 @@ GenTree* Compiler::gtCloneExpr( // Copy any node annotations, if necessary. switch (tree->gtOper) { - case GT_ASG: - { - IndirectAssignmentAnnotation* pIndirAnnot = nullptr; - if (m_indirAssignMap != nullptr && GetIndirAssignMap()->Lookup(tree, &pIndirAnnot)) - { - IndirectAssignmentAnnotation* pNewIndirAnnot = new (this, CMK_Unknown) - IndirectAssignmentAnnotation(pIndirAnnot->m_lclNum, pIndirAnnot->m_fieldSeq, - pIndirAnnot->m_isEntire); - GetIndirAssignMap()->Set(copy, pNewIndirAnnot); - } - } - break; - case GT_STOREIND: case GT_IND: case GT_OBJ: @@ -11534,20 +11521,6 @@ void Compiler::gtDispTree(GenTree* tree, } #endif // FEATURE_PUT_STRUCT_ARG_STK - IndirectAssignmentAnnotation* pIndirAnnote; - if (tree->gtOper == GT_ASG && GetIndirAssignMap()->Lookup(tree, &pIndirAnnote)) - { - printf(" indir assign of V%02d:", pIndirAnnote->m_lclNum); - if (pIndirAnnote->m_isEntire) - { - printf("d:%d", pIndirAnnote->m_defSsaNum); - } - else - { - printf("ud:%d->%d", pIndirAnnote->m_useSsaNum, pIndirAnnote->m_defSsaNum); - } - } - if (tree->gtOper == GT_INTRINSIC) { switch (tree->gtIntrinsic.gtIntrinsicId) |