Request for review (L): 6797305: Add LoadUB and LoadUI opcode class

Vladimir Kozlov Vladimir.Kozlov at Sun.COM
Fri Mar 6 09:38:46 PST 2009


Is this

Is it possible that matcher is confused by the cost?
You changed the cost of ConvI2L:

   instruct convI2L_reg( eRegL dst, eRegI src, eFlagsReg cr) %{
     match(Set dst (ConvI2L src));
     effect(KILL cr);
+   ins_cost(375);

and cost of "ConvI2L (LoadUB" is lower:

! instruct loadUB2L(eRegL dst, memory mem)
! %{
!   match(Set dst (ConvI2L (LoadUB mem)));
!
!   ins_cost(250);

Vladimir

Tom Rodriguez wrote:
> What does the failure output look like?
> 
> tom
> 
> On Mar 6, 2009, at 7:49 AM, Christian Thalinger wrote:
> 
>> On Fri, 2009-03-06 at 12:15 +0100, Christian Thalinger wrote:
>>> On Fri, 2009-03-06 at 00:45 -0800, Vladimir Kozlov wrote:
>>>> Looks good.
>>>>
>>>> In x86_32.ad in loadB2L you need only 7 bits shift: SAR dst.hi, 7
>>>> and in loadS2L only 15 bits.
>>>
>>> Right.  I will change that and push the changeset.  Thanks Vladimir!
>>
>> Hmm, JPRT failed and it seems there is a matcher problem.  It matches:
>>
>>  match(Set dst (ConvI2L (LoadUB mem)));
>>
>> instead of:
>>
>>  match(Set dst (ConvI2L src));
>>
>> But there is no LoadUB node around.  Are there any matcher restrictions
>> that I don't know about?
>>
>> -- Christian
>>
> 



More information about the hotspot-compiler-dev mailing list