summaryrefslogtreecommitdiff
path: root/src/jit/gentree.cpp
diff options
context:
space:
mode:
authorMike Danes <onemihaid@hotmail.com>2017-11-30 23:47:03 +0200
committerMike Danes <onemihaid@hotmail.com>2018-05-19 01:11:08 +0300
commit026abe216b39550ab6acb80ecb8927904e194886 (patch)
tree8d9da646a03a710d7dc87bbaf9220c417d22c58e /src/jit/gentree.cpp
parent73a175f06746d386084af5d3362994c1077bc6f5 (diff)
downloadcoreclr-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.cpp27
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)