On 12/20/16 16:09, Wilco Dijkstra wrote:
> Bernd Edlinger wrote:
>> this splits the *arm_negdi2, *arm_cmpdi_insn and *arm_cmpdi_unsigned
>> also at split1 except for TARGET_NEON and TARGET_IWMMXT.
>>
>> In the new test case the stack is reduced to about 270 bytes, except
>> for neon and iwmmxt, where this does not change anything.
>
> This looks odd:
>
> -    operands[2] = gen_lowpart (SImode, operands[2]);
> +    if (can_create_pseudo_p ())
> +      operands[2] = gen_reg_rtx (SImode);
> +    else
> +      operands[2] = gen_lowpart (SImode, operands[2]);
>
> Given this is an SI mode scratch, do we need the else part at all? It seems 
> wrong
> to ask for the low part of an SI mode operand...
>

Yes, I think that is correct.

> Other than that it looks good to me, but I can't approve.
>
> As a result of your patches a few patterns are unused now. All the Thumb-2 
> iordi_notdi*
> patterns cannot be used anymore. Also I think arm_cmpdi_zero never gets used 
> - a DI
> mode compare with zero is always split into ORR during expand.
>

I did not change anything for -mthumb -mfpu=neon for instance.
Do you think that iordi_notdi* is never used also for that
configuration?

And if the arm_cmpdi_zero is never expanded, isn't it already
unused before my patch?


Bernd.

Reply via email to