[M3commit] CVS Update: cm3

Tony Hosking hosking at cs.purdue.edu
Sun Jul 4 02:49:11 CEST 2010

On 3 Jul 2010, at 20:42, Jay K wrote:

> Not a multiprocessor.
>   Still interested in selective volatile?

Not really.  This says its something even more troubling unless it happens with the optimiser.

> This all bothers me too.
> I don't want volatile. It makes the optimized code terrible.


> But I don't want to debug any problem from removing it, beyond compilation failure.
> I can try a few things.
> This is all wierd. I swear I saw it hang several times.
> I swear I'm trying to to change "too many" variables at a time. Yes, I know, 2 is too many.
> Once I started getting version stamp mismatch, I resorted to using a cross built cm3.
>  Out of necessity sort of, but that causes more flucuation of variables.
> Let me try again with volatile and see if it is solid.
>  Then I'll try with only volatile stores.
> I've been trying optimized and unoptimized, and not kept good track of which when.
>  - Jay
> ----------------------------------------
>> From: hosking at cs.purdue.edu
>> Date: Sat, 3 Jul 2010 20:36:20 -0400
>> To: jkrell at elego.de
>> CC: m3commit at elegosoft.com
>> Subject: Re: [M3commit] CVS Update: cm3
>> I am very disturbed that volatile is needed here. Can we selectively turn it on for thread-critical files like ThreadPThread and see if it fixes the problem. I wonder if the double-checked locking is broken for PPC memory model. Is this on a multi-processor?
>> On 3 Jul 2010, at 12:57, Jay Krell wrote:
>>> CVSROOT: /usr/cvs
>>> Changes by: jkrell at birch. 10/07/03 12:57:09
>>> Modified files:
>>> cm3/m3-sys/m3cc/gcc/gcc/m3cg/: parse.c
>>> Log message:
>>> restore volatile for powerpc and powerpc64 platforms
>>> This seems to fix PPC_LINUX hanging.
>>> This needs further debugging, but I'm not eager.
>>> This will also affect PPC_DARWIN, PPC64_DARWIN, PPC32_OPENBSD,
>>> PPC32_NETBSD, PPC32_FREEBSD, etc., but these platforms are little used or
>>> nonexistant.
>>> Having volatile like has been the very long standing situation though.
>>> The result is that the optimizer does basically nothing.

More information about the M3commit mailing list