RFR(S): 8231291: C2: loop opts before EA should maximally unroll loops

Vladimir Kozlov vladimir.kozlov at oracle.com
Wed Dec 18 03:38:38 UTC 2019


Very nice!

cfgnode.cpp - should we also check for is_top() to set `doit = false` and bailout?

Why you added check in must_be_not_null()? It is used only in library_call.cpp and should not relate to this changes. 
Did you find some issues?

Thanks,
Vladimir

On 12/16/19 12:18 AM, Roland Westrelin wrote:
> 
> http://cr.openjdk.java.net/~roland/8231291/webrev.01/
> 
> As discussed before:
> 
> https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2019-September/035094.html
> https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2019-November/036171.html
> 
> Fully unrolling loops early helps EA. The change to cfgnode.cpp is
> required because full unroll sometimes needs peeling which may add a phi
> between a memory access and its AddP, a pattern that EA doesn't
> recognize.
> 
> Roland.
> 


More information about the hotspot-compiler-dev mailing list