Integrated: 8256858: C2: Devirtualize PhaseIterGVN-specific methods
Claes Redestad
redestad at openjdk.java.net
Tue Nov 24 14:37:02 UTC 2020
On Mon, 23 Nov 2020 13:48:21 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.
This pull request has now been integrated.
Changeset: f55ae959
Author: Claes Redestad <redestad at openjdk.org>
URL: https://git.openjdk.java.net/jdk/commit/f55ae959
Stats: 56 lines in 5 files changed: 12 ins; 10 del; 34 mod
8256858: C2: Devirtualize PhaseIterGVN-specific methods
Reviewed-by: kvn, thartmann
-------------
PR: https://git.openjdk.java.net/jdk/pull/1385
More information about the hotspot-compiler-dev
mailing list