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