[jdk17] RFR: 8269878: Handle redundant reg-2-reg moves in X86 backend

Jatin Bhateja jbhateja at openjdk.java.net
Tue Jul 6 16:19:49 UTC 2021


On Tue, 6 Jul 2021 06:59:52 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.

Withdrawing from JDK-17, moving to JDK-mainline (18)

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

PR: https://git.openjdk.java.net/jdk17/pull/217


More information about the hotspot-compiler-dev mailing list