Remove useless IndirectAssignmentAnnotation
authorMike Danes <onemihaid@hotmail.com>
Thu, 30 Nov 2017 21:47:03 +0000 (23:47 +0200)
committerMike Danes <onemihaid@hotmail.com>
Fri, 18 May 2018 22:11:08 +0000 (01:11 +0300)
commit026abe216b39550ab6acb80ecb8927904e194886
tree8d9da646a03a710d7dc87bbaf9220c417d22c58e
parent73a175f06746d386084af5d3362994c1077bc6f5
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.
src/jit/compiler.cpp
src/jit/compiler.h
src/jit/gentree.cpp
src/jit/morph.cpp
src/jit/ssabuilder.cpp
src/jit/ssabuilder.h
src/jit/valuenum.cpp