RFR: 8272315: Improve assert_different_registers
Kim Barrett
kbarrett at openjdk.java.net
Wed Aug 11 12:02: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.
src/hotspot/share/asm/register.hpp line 70:
> 68: // Sort regs, so any equal entries are adjacent.
> 69: struct Compare { ptrdiff_t operator()(R x, R y) const { return x - y; } };
> 70: QuickSort::sort(regs, ARRAY_SIZE(regs), Compare(), false);
Sorting is kind of overkill. Maybe I should have just use the obvious nested loop? What do reviewers think?
-------------
PR: https://git.openjdk.java.net/jdk/pull/5083
More information about the hotspot-compiler-dev
mailing list