RFR: 8286104: use aggressive liveness for unstable_if traps [v2]

Xin Liu xliu at openjdk.java.net
Thu May 26 06:45:32 UTC 2022


On Tue, 17 May 2022 19:03:04 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

> I think you also need to call inline_incrementally_cleanup() on exit from process_for_unstable_ifs() if it made progress (found dead locals). Or do similar thing to cleanup *_late_inlines lists. Placing IF node on work list is not enough.

Hi, @vnkozlov , 
I don't understand why we need to call inline_incrementally_cleanup(), which combines `PhaseRemoveUseless` and IGVN.  It looks for me C2 only needs `PhaseRemoveUseless` after parsing. 

I decide to only call process_for_unstable_ifs() after IGVN(1st) and before incremental inliner. we may call it after incremental inliner after we can prove it is stable. 

If `process_for_unstable_ifs` does kill a value, `igvn.replace_input_of()` puts unc and unc->in(idx) into worklist.    `igvn.optimize()` in last statement should handle them properly.  I just follow the recipe of `process_for_post_loop_opts_igvn()`.

thanks,
--lx

-------------

PR: https://git.openjdk.java.net/jdk/pull/8545


More information about the hotspot-compiler-dev mailing list