>>>>> "Oliver" == Oliver Kellogg <oliver.kell...@t-online.de> writes:

Oliver> As mentioned, I'm still struggling with leftovers being carried
Oliver> over from compilation 1 to N-1 into compilation N of a compile
Oliver> job.  gcc_free'ing things (in combination with "configure
Oliver> --enable-checking=gc,gcac") helps me track down objects that
Oliver> should have been reset.

This is ok as an approach to development but probably not ok for a real
patch.

If you look on the incremental branch you can find various places where
I added new functions to clean up modules before a new compilation job
is run.  This fills a similar need, if I understand your problem
correctly.  I did this in an ad hoc way, just resetting the modules I
needed, so I don't know whether or not the particular changes will be of
use to you.

Oliver> A next step after that may be to look at Tom Tromey's
Oliver> incremental- compiler branch and see whether it is possible to
Oliver> integrate my changes there. I would be looking at running the
Oliver> incremental compiler in a serverless mode more similar to the
Oliver> way GCC works now, where trees are constructed and shared only
Oliver> within a single compile job (i.e. the backend is called only
Oliver> once but with many files as the argument list, and the trees are
Oliver> only reused throughout the compilations of these files but do
Oliver> not continue to exist beyond the backend invocation lifetime.)

This sounds like the --combine switch on trunk.

The incremental compiler work is mostly orthogonal to --combine.  The C
front end changes improve --combine performance, and I used --combine as
a testbed, but I didn't touch the --combine infrastructure itself.  (I
think these changes would help with LIPO, too, but I haven't really
looked into it.)

If you wanted your modified compiler to emit separate object files for a
--combine run, then yeah, you would need something like a hybrid between
the compile server from the incremental branch and --combine.  This is
doable, maybe even easy.

Tom

Reply via email to