On Oct 10, 2005, at 20:24, Andy Dougherty wrote:

Why? --optimize does at least two different things: First, obviously, it
allows the compiler to optimize.  This is often a good strategy for
exposing faulty assumptions in code.  Second, it enables the
DISABLE_GC_DEBUG define, which changes the sizes of several
structures, including PMCs and Stack_Chunks.  Changing the sizes of
those structures can expose alignment and size assumptions.

Sure, all ACK. And actually I'm compiling --optimized quite often to check perfomance. But I currently don't care about failing tests due to opimizations, the more that the involved structures are only intermittend steps towards variable sized register frames.

I know about the picture.  I don't know why you chose to use a pointer
pointing to the middle of the structure instead of the beginning.  I'm
afraid "praise x86 jit" doesn't mean anything to me.

This structure will also change soon again.

If, instead, you allocated a single structure containing both the Context
plus the registers, then the compiler would correctly ensure all the
correct padding and compute all the offsets for you.

This will not work for variable sized register frame, as there is no real register structure. We will have to fake it enough that the compiler thinks there is a structure, but actually there is none.

I'm currently working on an outline of the final thingy. Given that, I'm very glad about hints WRT the sanest way to convince compilers to DTRT.

None of which is terribly urgent to me, however, as I don't expect to have
time to follow up on this for quite a while.

I need some time too, to convert to the 'final' design. I'll appreciate comments, tests, ... very much.

leo

Reply via email to