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

Christian Thalinger Christian.Thalinger at Sun.COM
Fri Mar 6 09:46:07 PST 2009


On Fri, 2009-03-06 at 09:38 -0800, Vladimir Kozlov wrote:
> 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);

Ahh, sorry, I didn't mention that this happens on x86_64.  I just wonder
why the matcher matches the rule when there is no LoadB that could be
matched.  If I remove that instruction, then the next is matched:

  match(Set dst (ConvI2L (LoadUB mem)));

-- Christian




More information about the hotspot-compiler-dev mailing list