RFR: 8160748: Inconsistent types for ideal_reg
Kim Barrett
kim.barrett at oracle.com
Wed Apr 12 01:03:37 UTC 2017
> On Apr 10, 2017, at 9:53 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
>
> On 4/10/17 6:00 PM, Kim Barrett wrote:
>>> On Apr 10, 2017, at 3:43 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
>>>
>>> Hi, Kim
>>>
>>> Please, also correct vector registers (need to fix *.ad files too):
>>>
>>> // Vector ideal reg
>>> static const int vector_ideal_reg(int len);
>>> static const int vector_shift_count_ideal_reg(int len);
>>
>> Oops, I missed those. Testing that change. I’ll put out a new webrev when that’s done.
>>
>>> Can you do the same for OptoReg::reg2stack()? Or file separate RFE for it.
>>
>> I’m not sure what it is you are asking for here.
>
> There are useless conversions there too. For example:
>
> static unsigned int reg2stack( OptoReg::Name r) {
>
> int stack_slot = reg2stack(n);
>
> But it is a lot more changes since stack2reg(int idx) and others have singed argument. And I don't remember if negative values are used in such case. That is why I said may be to do it in separate RFE.
At a high level, I think this is covered by JDK-8135181, and would be part of the JDK-8177482 subtask.
If you want something more specific than that right now, it might be better for you or some other person
with better understanding of the compiler than I have to put a sensible RFE together. About all I could
say is that reg2stack returns uint but many callers treat the result as an int. But maybe that’s all you are
asking for?
More information about the hotspot-compiler-dev
mailing list