RFR: 8272315: Improve assert_different_registers

Dean Long dlong at openjdk.java.net
Wed Aug 11 21:24:25 UTC 2021


On Wed, 11 Aug 2021 11:34:26 GMT, Kim Barrett <kbarrett at openjdk.org> wrote:

> Please review this improvement to assert_different_register.
> 
> It reduces ~250 lines of repetitive code to ~10 lines, and improves the
> error message on failure by printing a duplicated registers name.
> 
> Unfortunately, this isn't enough to eliminate AbstractRegister[Impl].
> Although it seems to no longer be needed for the Oracle-supported platforms,
> the linux-arm/ppc64le/s390 platforms all use the value() function provided
> by AbstractRegisterImpl.
> 
> Testing:
> tier1 on Oracle supported platforms.
> built linux-arm/ppc64le/s390.
> 
> Locally changed a call to have a duplicate register and verified the error
> message had a useful register name.

Isn't this macro only used for integer registers?  I have an alternative implementation for arm somewhere that uses RegisterSet, but you can just use an array of bytes or bits and check for duplicates as you go in O(n) time, right?

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

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


More information about the hotspot-compiler-dev mailing list