[9] RFR(S): 8174164: SafePointNode::_replaced_nodes breaks with irreducible loops

Roland Westrelin rwestrel at redhat.com
Wed Feb 8 19:40:25 UTC 2017

Hi Vladimir,

Thanks for looking at this.

> What happens if Identity() was used for replacement and as result new 
> node would exist and its idx < _new_idx? Or replacing nodes list records 
> only new nodes?

To put that back in context, the replaced node stuff was added so
castnodes would propagate from callees to callers. Most castnodes are
control dependent so Identity transforming the node sounds
unlikely. Anyway, if that happens, then when the nodes are "replaced"
(when parsing is over for a method), those nodes would be ignored. All
nodes are recorded but only new nodes are considered.

> Also what happens for the rest of replacing nodes on the list?

They stay on the list. I suppose I could prune the list when it's
propagated from a callee to a caller.


More information about the hotspot-compiler-dev mailing list