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

Roland Westrelin rwestrel at redhat.com
Wed Feb 15 09:40:56 UTC 2017


> Wow, so much changes.

Doesn't that make my initial change (the one that only takes newer nodes
into consideration) look more reasonable?

> Can you add _irreducible_loop field to CallGenerator instead of passing as argument?

The _irreducible_loop field only needs to be InlineCallGenerator so that
does seem better. Unfortunately, LibraryIntrinsic objects are cached so
there's no way to initialize _irreducible_loop for them (and there's a
use of replaced nodes for the array copy intrinsic).

Alternatively, we could use a coarser grain switch: make
Compile::_parsed_irreducible_loop product and use it to decide whether
to apply replaced nodes or not.

Roland.


More information about the hotspot-compiler-dev mailing list