Hi,
thanks for working on it.  There are 3 basically indpeendent changes in the 
patch
 - The patch to make checking in lto_streamer_init ENABLE_CHECKING only that I
   think can be comitted as obvoius.
 - Templates for call_for_symbol_and_aliases
   I do not think these should be strictly necessary for perofrmance, because 
once we
   spent too much time in these we are bit screwed.
   I however see it also makes things bit nicer by not needing typecasts on 
data pointer.
   Pehraps that could be further cleaned?

   Alternative would be to implement FOR_EACH_ALIAS macro with tree walking 
iterator.
   You have all the structure to not require stack.  Iterator will ocntain an
   root node, current node and index to ref.
   This may be even easier to use and probably wind up generating about the 
same code
   given that the for each template anyway needs to produce self recursive 
function.

   I would not care about for_symbol_thunk_and_aliases.  That function is heavy 
by walking
   all callers anyway and should not be used in hot code.
   I have patch that removes its use from inliner - it is more or less leftover 
from time
   we represented thunks as special aliases instead of functions w/o gimple 
body.
 - the caching itself.

I will look into the caching in detail.  I am not quite sure I like the idea of 
exposing inline
only cache into cgraph.h.  You could just keep the predicates as are, but have 
inline_ variants
in ipa-inline.h that does the caching for you.

Allocating the bits directly in cgraph_node is probably OK, we don't really 
have shortage there
and can be revisited easily later...

Honza

Reply via email to