Fix cgraph reading seen in Mozila LTO build

Richard Guenther rguenther@suse.de
Sun Jul 4 13:39:00 GMT 2010


On Sun, 4 Jul 2010, Jan Hubicka wrote:

> Hi,
> mozilla build fails with streamer getting out of sync.  This is because of input_edge
> condition ignoring edges for preemted nodes.  This is wrong, since then we get out of
> sync reading bitpack and even if we fix that we get out of sync later reading jump functions.
> 
> The overall idea always has been to read everythign it and then throw away
> stuff during merging.  This patch and additional fix to lto-symtab lets me to
> build the Mozilla's javascript interpretter with LTO (but not with WHOPR because
> of unrelated bug elsewhere).
> 
> Bootstrapped/regtested x86_64-linux, OK?

Ok.  What's the fix to lto-symbtab?

Thanks,
Richard.

> Honza
> 
> 	* lto-cgrah.c (input_edge): Do not care about resolution decisions.
> 
> Index: lto-cgraph.c
> ===================================================================
> --- lto-cgraph.c	(revision 161774)
> +++ lto-cgraph.c	(working copy)
> @@ -1158,7 +1158,6 @@ input_edge (struct lto_input_block *ib,
>    unsigned int nest;
>    cgraph_inline_failed_t inline_failed;
>    struct bitpack_d bp;
> -  enum ld_plugin_symbol_resolution caller_resolution;
>    int ecf_flags = 0;
>  
>    caller = VEC_index (cgraph_node_ptr, nodes, lto_input_sleb128 (ib));
> @@ -1183,13 +1182,6 @@ input_edge (struct lto_input_block *ib,
>    freq = (int) bp_unpack_value (&bp, HOST_BITS_PER_INT);
>    nest = (unsigned) bp_unpack_value (&bp, 30);
>  
> -  /* If the caller was preempted, don't create the edge.
> -     ???  Should we ever have edges from a preempted caller?  */
> -  caller_resolution = lto_symtab_get_resolution (caller->decl);
> -  if (caller_resolution == LDPR_PREEMPTED_REG
> -      || caller_resolution == LDPR_PREEMPTED_IR)
> -    return;
> -
>    if (indirect)
>      edge = cgraph_create_indirect_edge (caller, NULL, 0, count, freq, nest);
>    else
> 
> 

-- 
Richard Guenther <rguenther@suse.de>
Novell / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746 - GF: Markus Rex



More information about the Gcc-patches mailing list