[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