RFR: 8263189: C2: assert(!had_error) failed: bad dominance
Roland Westrelin
roland at openjdk.java.net
Thu Mar 18 09:36:50 UTC 2021
On Wed, 17 Mar 2021 16:54:40 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:
> Changes seems fine.
> But your statement that all transformations happened in "same loop opts pass" worries me too. Should we exit loop opts in between to allow IGVN to optimize graph?
Thanks for the review.
::is_counted_loop()``` has:
l->phi()->as_Phi()->set_type(l->phi()->Value(&_igvn));
for both int and long counted loops. I noticed (when I added this) that after the CountedLoop is built, we can narrow the iv Phi type but often, the loop is transformed in the same loop opts round (pre/main/post loops added) before igvn has a chance to run. When igvn finally runs, it can't narrow the iv Phi anymore.
Running igvn there for both int and long counted loops would seem quite disruptive.
-------------
PR: https://git.openjdk.java.net/jdk/pull/3005
More information about the hotspot-compiler-dev
mailing list