On Tue, Jul 28, 2015 at 2:15 PM, Samuel Thibault <samuel.thiba...@inria.fr>
wrote:

> Paul Hargrove, le Tue 28 Jul 2015 13:28:00 -0700, a écrit :
> > I am more concerned about dropping the input constraints in favor of
> "+a" and
> > "+c".
> > For a *correct* compiler that should be equivalent, but the reason we
> are doing
> > this is because some compilers are buggy.
>
> I wouldn't say "buggy". Usually the issue is that the register allocator
> is not smart enough to get its way through (which was the original issue
> of this thread).  I'd be really surprised that there'd be real bugs
> here, and to me "+a" seems actually safer than "=a" : "0", if any.


Well, for the compiler that accepted the "=r" form and then generated code
that SEGV'd I would say "buggy".
Other than that one, I agree that a "weak" register allocator is not
precisely a "bug".

Here is the good news:

I have retested all 28 system/compiler combinations I had tested my
original patches against.
This time I started with the 1.11.0 release tarball and applied Samuel's
commit 46deaebf.

All looked fine *except* the following with icc-15 with -m32 on a x86-64
Ubuntu 12.04.5 system:
   FAIL: 256ia64-64n2s2c.output
I don't see how that could possibly be related to the inline asm for cpuid,
and have confirmed that the same failure occurs without the patch (but it
is absent w/o -m32).

I noticed an early-clobber applied to "1" and "3" in master.
I am retesting that now (still as applied to 1.11.0)

-Paul

-- 
Paul H. Hargrove                          phhargr...@lbl.gov
Computer Languages & Systems Software (CLaSS) Group
Computer Science Department               Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900

Reply via email to