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

Vladimir Kozlov 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.

Okay.

>
>> 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?

Thanks,
Vladimir

>
> Roland.
>


More information about the hotspot-compiler-dev mailing list