RFR: 8256858: C2: Devirtualize PhaseIterGVN-specific methods [v2]

Tobias Hartmann thartmann at openjdk.java.net
Tue Nov 24 14:23:07 UTC 2020


On Tue, 24 Nov 2020 10:11:14 GMT, Claes Redestad <redestad at openjdk.org> wrote:

>> PhaseValues define the virtual method is_IterGVN, which is trivially returning 0(!) for all types except those derived from PhaseIterGVN. Similarly there's igvn_rehash_node_delayed which is virtual and a no-op in base types, but implemented to call rehash_node_delayed in PhaseIterGVN.
>> 
>> By devirtualizing we allow for more aggressive inlining and slightly better code generation in a few places. 
>> 
>> This increases sizeof(PhaseValues) from 2480 to 2488 on x64. Since we only go through a limited number of phases per compilation this seems acceptable.
>
> Claes Redestad has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Some cleanups

Marked as reviewed by thartmann (Reviewer).

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

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


More information about the hotspot-compiler-dev mailing list