Integrated: 8267151: C2: Don't create dummy Opaque1Node for outmost unswitched IfNode

Yi Yang yyang at openjdk.java.net
Wed May 19 09:10:42 UTC 2021


On Tue, 18 May 2021 03:12:23 GMT, Yi Yang <yyang at openjdk.org> wrote:

> In create_slow_version_of_loop(), C2 creates the outmost unswitched IfNode(i.e. **if(xx)**{ for{} }else{ for{} }) with a dummy opaque bool node as its condition input.
> 
> https://github.com/openjdk/jdk/blob/cd1c17c0a6416a8d16cf2035f3e97dba95b6b8af/src/hotspot/share/opto/loopUnswitch.cpp#L265-L271
> 
> After that, it sets the _prob(missing _fcnt?) of the outmost unswitched IfNode in do_unswitching().
> 
> https://github.com/openjdk/jdk/blob/cd1c17c0a6416a8d16cf2035f3e97dba95b6b8af/src/hotspot/share/opto/loopUnswitch.cpp#L186-L191
> 
> I think we can merge these two steps into a single step, that is, create the outmost unswitched IfNode meanwhile setting its condition input, _prob and _fcnt w/ creating the dummy opaque bool node.
> 
> Testing:
> - hotspot/jtreg/compiler(slowdebug)

This pull request has now been integrated.

Changeset: 392f962e
Author:    Yi Yang <yyang at openjdk.org>
Committer: Tobias Hartmann <thartmann at openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/392f962e0e87de1b5183505c86a967cc9999e04c
Stats:     30 lines in 2 files changed: 3 ins; 16 del; 11 mod

8267151: C2: Don't create dummy Opaque1Node for outmost unswitched IfNode

Reviewed-by: thartmann, neliasso

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

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


More information about the hotspot-compiler-dev mailing list