[M3devel] random notes: gcc 4.5, sparc, etc.

Jay K jay.krell at cornell.edu
Thu Oct 7 11:45:49 CEST 2010


Unoptimized SOLsun gcc 4.5: exception handling does jump to the right place.
I suspect we are underusing volatile.
e.g.: we don't make all the types/variables volatile, we merely mark MOST of the load/stores volatile.
  The ones going through m3_load/m3_store, but not all the other uses of MODIFY_EXPR.

I think solution is to volatize all decls if we are volatizing all load/store and/or also volatize
all MODIFY_EXPR. There is probably redundancy here.

Notice that even the original volatization was incomplete.
It volatized current function's current temporaries/locals, but not others declared after
any call to setjmp. I fixed that at some point.

 - Jay

----------------------------------------
> From: jay.krell at cornell.edu
> To: m3devel at elegosoft.com
> Subject: random notes: gcc 4.5, sparc, etc.
> Date: Wed, 6 Oct 2010 13:30:00 +0000
>
>
> some random notes
>
> Solaris/sparc32 using gcc 4.3 backend, -O3 breaks exception handling
>   Easy test is to run cm3 without a neighboring cm3.cfg and the error
>   is that cm3.cfg didn't define BUILD_DIR, rather than couldn't find cm3.cfg
>
> Solaris/sparc32 using gcc 4.5, exception handling is broken, without optimization
>   Same easy test, but it crashes upon first attempt to raise an exception.
>
> Solaris/sparc32 using gcc 4.3 is broken by the typeinfo and/or stabilize_reference + O3.
>   NULL derefence in backend. Unless you go down to -O2, which parse.c does now.
>
> Linux/sparc32 using gcc 4.5 is very broken, I think without optimization.
>   Actually doesn't seem to crash but exit(0) before it finishes initializing all modules.
>
> Meanwhile I think many other targets are working ok with 4.5.
> Hudson doesn't use -O2 or -O3 but I use them fairly often, at least on Darwin.
>
>  - Jay
>
 		 	   		  


More information about the M3devel mailing list