Fixed all, committing to pph. Regarding builtins, it looked like some builtins like "int type" were streamed out as part of streaming out a non-builtin decl, i.e. a non-builtins with builtins in it's transitive closure.
http://codereview.appspot.com/4836050/diff/1/gcc/cp/pph-streamer-out.c File gcc/cp/pph-streamer-out.c (right): http://codereview.appspot.com/4836050/diff/1/gcc/cp/pph-streamer-out.c#newcode134 gcc/cp/pph-streamer-out.c:134: simply add them to the cache in the preload. */ On 2011/08/05 16:01:15, Diego Novillo wrote:
132 /* FIXME pph: we are streaming builtin locations, which
implies that we
are 133 streaming some builtins, we probably want to figure out
what those
are and 134 simply add them to the cache in the preload. */
Hmm, we are streaming builtins? The low-level streamer detects
builtins and
only emits the builtin code, not the whole tree. What builtins are
getting
through?
This can be addressed on a follow-up patch. It just sounds strange to
me that
we are streaming builtins and locations.
Right, I originally had an assert here that all locations written were in the user-defined source_location range, but some were in the builtin range. My plan is to look into this next (after fixing the last asm diff potentially) http://codereview.appspot.com/4836050/diff/1/gcc/cp/pph-streamer.h File gcc/cp/pph-streamer.h (right): http://codereview.appspot.com/4836050/diff/1/gcc/cp/pph-streamer.h#newcode344 gcc/cp/pph-streamer.h:344: streamer hook back to pph_write_location. */ On 2011/08/05 16:01:15, Diego Novillo wrote:
342 FIXME pph: If pph_trace didn't depend on STREAM, we could
avoid having
to 343 call this function, only for it to call lto_output_location,
which calls
the 344 streamer hook back to pph_write_location. */
Just call pph_write_location here. No need to call
lto_output_location anymore.
We only rely on lto_output_location calling us when it's called from
tree
leaves inside the tree streamer routines.
Ah right, definitely :)! http://codereview.appspot.com/4836050/