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