public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* [pph] Adapting LTO streaming for front end AST saving
@ 2011-03-23 14:47 Diego Novillo
  2011-03-23 14:53 ` Richard Guenther
  0 siblings, 1 reply; 6+ messages in thread
From: Diego Novillo @ 2011-03-23 14:47 UTC (permalink / raw)
  To: gcc; +Cc: Richard Guenther, Jan Hubicka, Lawrence Crowl

Over at the PPH branch we are starting to re-use the LTO streaming
routines to save front end trees.  Clearly, there are things that need
to be extended and/or replaced since LTO streaming assumes that we are
in GIMPLE.  However, there is a large intersection that I think can be
commoned out.

- ASTs do not need to concern themselves with language differences.
They are generated and consumed by cc1plus, so saving
language-dependent information is fine.
- LTO streaming has several checks and assumptions that prevent
non-gimple trees (e.g., DECL_SAVED_TREE must be NULL).

I'm looking for opinions on what would be the best approach to factor
out the common code.  So far, I have created a layer of routines and
data structures that the front end calls to manipulate PPH files.
These are wrappers on top of LTO streaming that deal with all the
sections, buffers and streams used by LTO.

I was thinking of using langhooks to do things like checks (like the
check for DECL_SAVED_TREE in
lto_output_ts_decl_non_common_tree_pointers or the asserts in
lto_get_common_nodes).  I'm expecting that there will be other things,
like handling more tree nodes in the tree streaming routines.  But
everything else seems to be already sufficiently flexible for our
needs.

Thoughts?


Thanks.  Diego.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-03-23 17:18 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-23 14:47 [pph] Adapting LTO streaming for front end AST saving Diego Novillo
2011-03-23 14:53 ` Richard Guenther
2011-03-23 15:11   ` Diego Novillo
2011-03-23 16:39   ` Jan Hubicka
2011-03-23 16:49     ` Diego Novillo
2011-03-23 17:58       ` Diego Novillo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).