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

Vladimir Ivanov vlivanov at openjdk.java.net
Mon Jul 12 11:18:09 UTC 2021


On Wed, 7 Jul 2021 11:07:10 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.
>
> Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:
> 
>   8269878: Review comments resolution.

Looks good.

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

Marked as reviewed by vlivanov (Reviewer).

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


More information about the hotspot-compiler-dev mailing list