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