Integrated: 8269878: Handle redundant reg-2-reg moves in X86 backend
Jatin Bhateja
jbhateja at openjdk.java.net
Mon Jul 12 11:39:02 UTC 2021
On Tue, 6 Jul 2021 17:04:28 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
> Chain patterns which connects various legacy, VL and non-legacy USE - DEF operands during selection need not emit a reg-2-reg move instruction. C2 register allocator can handle these cases by back propagating the register mask from USE to DEF e.g.
>
> USE (regD) <- DEF( legRegD) : Not an issue since regD can accommodate ranges allocated to legRegD.
>
> USE (legRegD) <- USE (regD) : Not an issue since Allocator will back propagate legRegD mask from USE to its DEF node, which will constrain the allocation set to lower register bank.
>
> Same logic applies to vlRegD , rRegD, legRegD combinations.
>
> These machine nodes are redundant post selection and can be removed during generic operand resolution phase.
This pull request has now been integrated.
Changeset: c3a42edd
Author: Jatin Bhateja <jbhateja at openjdk.org>
URL: https://git.openjdk.java.net/jdk/commit/c3a42eddecf29b203a6397519b5643d5f3e2fd28
Stats: 342 lines in 9 files changed: 172 ins; 161 del; 9 mod
8269878: Handle redundant reg-2-reg moves in X86 backend
Reviewed-by: kvn, vlivanov
-------------
PR: https://git.openjdk.java.net/jdk/pull/4693
More information about the hotspot-compiler-dev
mailing list