RFR: 8272315: Improve assert_different_registers

Andrew Dinn adinn at openjdk.java.net
Wed Aug 11 12:49:26 UTC 2021


On Wed, 11 Aug 2021 12:24:27 GMT, Kim Barrett <kbarrett at openjdk.org> wrote:

>> 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?
>
> Answering my own question, sorting imposes additional requirements on the type that might require adjustment for JDK-8270140.  So I'm inclined to switch to the nested loop that only requires equality testing as before.

Well, a nested loop is order n^2 but n is always going to be pretty small (the old code allowed for 12 but cases with n > 6 are rare). So I see no great perf problem with using a nested loop.

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

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


More information about the hotspot-compiler-dev mailing list