RFR(S): 8174164: SafePointNode::_replaced_nodes breaks with irreducible loops
vladimir.kozlov at oracle.com
Wed Feb 8 21:13:37 UTC 2017
On 2/8/17 11:40 AM, Roland Westrelin wrote:
> 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.
Can you put old nodes pruned from list on IGVN list so they have chance
to be optimized later?
More information about the hotspot-compiler-dev