On 15/12/2014 17:24, Segher Boessenkool wrote:
> On Mon, Dec 15, 2014 at 04:51:14PM +0100, Paolo Bonzini wrote:
>> Random questions:
>>
>> 1) did you check that it never triggers on e.g. an x86 bootstrap, and
>> that it doesn't trigger too often on PPC64?
>
> I have checked on my largish connection of tests for the carry insns
> on PowerPC, and only two (related) transforms are disabled, and they
> aren't too important anyway. Well, and the bad transforms are disabled,
> only just two of-em but much more frequent (long long x; x--;).
>
> I haven't checked on x86, but it's a bugfix: don't do things that blow up!
I agree---I just want to be sure of the extent of the change.
> [ That testcase, -m32:
>
> long long addSH(long long a, unsigned long b)
> {
> return a + ((unsigned long long)b << 32);
> }
>
> results in addic 4,4,0 ; addze 3,5 while it could just be add 3,5 ]
Ah, that's a pity. But breaking x-- is much worse.
>> 2) if it triggers rarely, should combine just try and give a new UID to
>> i1?
>
> That should in principle works, sure. Seems too dangerous for stage3
> though.
Indeed. Just thinking about it for 5.1.
Paolo