This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [tree-ssa-20020619-branch] current status report on i386-*-freebsd4*


In message <200402251512.28835.stevenb@suse.de>, Steven Bosscher writes:
 >On Wednesday 25 February 2004 15:08, Christian Ehrhardt wrote:
 >> On Wed, Feb 25, 2004 at 01:39:58PM +0100, Steven Bosscher wrote:
 >> > On Wednesday 25 February 2004 11:54, Christian Ehrhardt wrote:
 >> > > On Wed, Feb 18, 2004 at 12:13:36AM +0100, Gerald Pfeifer wrote:
 >> > > > Steven has started to look at this a bit, but basically it seems to
 >> > > > be a compiler issue, not a libstdc++ issue.  If you could provide the
 >> > > > libstdc++ folks with a small testcase (mine are *huge*) that probably
 >> > > > would help a lot!
 >> > >
 >> > > Maybe 14272 is related. This causes tons of libstdc++ testsuite
 >> > > failures on sparc because runtime datastructures like std::cout are
 >> > > never initialized. Check if __exchange_and_add from atomicity.h is
 >> > > miscompiled!
 >> >
 >> > It's not related, but it does fail.  Also on i686 btw.
 >>
 >> Yes, the reduced testcase in the PR should fail on virtually any
 >> platform. But some CPUs (i386 and sparc32) use code that triggers
 >> this bug in libstdc++-v3/config/cpu/*/atomicity.h whereas others
 >> don't (e.g. i686) because they have optimized assembler versions.
 >>
 >> I'm pretty much sure that that the i386-Version of __exchange_and_add
 >> will be miscompiled and cause various libstdc++-v3 testsuite failures.
 >>
 >> Note that __exchange_and_add is in turn used to make sure that things like
 >> std::cout is initialized exactly once. With the miscompilation the
 >> initilization never happens which leads to various interesting failures.
 >
 >I tried i386 with TER disabled and it didn't fix the problems
 >Gerald is seeing.  But I've analyzed the problem a bit more and
 >it is not really a TER problem, apparently, but more one with
 >aliasing and volatiles.  So I can imagine similar problems going
 >on in one of the optimizers.  I'll be watching this bug :-)
 >
 >Diego said he'd look into this bug.
Presumably this bug is the motivation behind Andrew's patch from earlier
today:

2004-02-26  Andrew MacLeod  <amacleod@redhat.com>
 
        * tree-ssa.c (find_replaceable_in_bb): Don't repalce expressions in
        volatile statements.
 


Can someone verify that i386 is working properly now?

Thanks,
jeff




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]