Skip reloads and copies in `gcIsWriteBarrierCandidate`.
authorPat Gavlin <pagavlin@microsoft.com>
Mon, 6 Jun 2016 20:07:20 +0000 (13:07 -0700)
committerPat Gavlin <pagavlin@microsoft.com>
Mon, 6 Jun 2016 20:34:22 +0000 (13:34 -0700)
commit69fcd73c2dec116b396c45e3a4b46826e4eda407
tree3275f5d0ab035ffb6860bf79ec665bf55c1a0e1a
parent34fec92e7fd35ab074fb1d373a74e82fb8413f5d
Skip reloads and copies in `gcIsWriteBarrierCandidate`.

The change is actually in `gcWriteBarrierFormFromTargetAddress`. Because copies/reloads
may be placed inside of address-forming trees and because such operations are
transparent w.r.t. the GC-ness of their operand, these nodes should be skipped during
the check for write barriers.

Fixes dotnet/coreclr#5484.

Commit migrated from https://github.com/dotnet/coreclr/commit/5632eaa8841c15865453cfa1acbdc58778926339
src/coreclr/src/jit/gcinfo.cpp