passes.c (ipa_write_summaries_1, [...]): Allocate encoders.

* passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries): Allocate
	encoders.
	* lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
	* lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
	(lto_streamer_cache_create): Init alloc pool.
	(lto_streamer_cache_delete): Free alloc pool.
	* lto-streamer.h: Include alloc pool.
	(lto_streamer_cache_d): Use alloc pool.
	* lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.

From-SVN: r159230
This commit is contained in:
Jan Hubicka 2010-05-10 18:13:52 +02:00 committed by Jan Hubicka
parent de61f46712
commit 5c4f225fcf
6 changed files with 28 additions and 4 deletions

View File

@ -1,3 +1,15 @@
2010-05-10 Jan Hubicka <jh@suse.cz>
* passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries): Allocate
encoders.
* lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
* lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
(lto_streamer_cache_create): Init alloc pool.
(lto_streamer_cache_delete): Free alloc pool.
* lto-streamer.h: Include alloc pool.
(lto_streamer_cache_d): Use alloc pool.
* lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
2010-05-10 Jan Hubicka <jh@suse.cz>
* Makefile.in (cgraphbuild.o): Add dependency on except.h.

View File

@ -542,9 +542,6 @@ lto_new_out_decl_state (void)
lto_init_tree_ref_encoder (&state->streams[i], hash_fn, eq_fn);
}
state->cgraph_node_encoder = lto_cgraph_encoder_new ();
state->varpool_node_encoder = lto_varpool_encoder_new ();
return state;
}

View File

@ -2505,6 +2505,7 @@ produce_asm_for_decls (cgraph_node_set set, varpool_node_set vset)
fn_out_state =
VEC_index (lto_out_decl_state_ptr, lto_function_decl_states, idx);
lto_output_decl_state_refs (ob, decl_state_stream, fn_out_state);
lto_delete_out_decl_state (fn_out_state);
}
lto_write_stream (decl_state_stream);
free(decl_state_stream);

View File

@ -500,7 +500,7 @@ lto_streamer_cache_insert_1 (struct lto_streamer_cache_d *cache,
else
ix = *ix_p;
entry = XCNEW (struct tree_int_map);
entry = (struct tree_int_map *)pool_alloc (cache->node_map_entries);
entry->base.from = t;
entry->to = (unsigned) ix;
*slot = entry;
@ -762,6 +762,10 @@ lto_streamer_cache_create (void)
cache->node_map = htab_create (101, tree_int_map_hash, tree_int_map_eq, NULL);
cache->node_map_entries = create_alloc_pool ("node map",
sizeof (struct tree_int_map),
100);
/* Load all the well-known tree nodes that are always created by
the compiler on startup. This prevents writing them out
unnecessarily. */
@ -785,6 +789,7 @@ lto_streamer_cache_delete (struct lto_streamer_cache_d *c)
return;
htab_delete (c->node_map);
free_alloc_pool (c->node_map_entries);
VEC_free (tree, gc, c->nodes);
VEC_free (unsigned, heap, c->offsets);
free (c);

View File

@ -30,6 +30,7 @@ along with GCC; see the file COPYING3. If not see
#include "cgraph.h"
#include "vec.h"
#include "vecprim.h"
#include "alloc-pool.h"
/* Define when debugging the LTO streamer. This causes the writer
to output the numeric value for the memory address of the tree node
@ -346,6 +347,9 @@ struct lto_streamer_cache_d
/* The mapping between tree nodes and slots into the nodes array. */
htab_t node_map;
/* Node map to store entries into. */
alloc_pool node_map_entries;
/* Next available slot in the nodes and offsets arrays. */
unsigned next_slot;

View File

@ -1694,6 +1694,9 @@ static void
ipa_write_summaries_1 (cgraph_node_set set, varpool_node_set vset)
{
struct lto_out_decl_state *state = lto_new_out_decl_state ();
state->cgraph_node_encoder = lto_cgraph_encoder_new ();
state->varpool_node_encoder = lto_varpool_encoder_new ();
lto_push_out_decl_state (state);
gcc_assert (!flag_wpa);
@ -1805,6 +1808,8 @@ void
ipa_write_optimization_summaries (cgraph_node_set set, varpool_node_set vset)
{
struct lto_out_decl_state *state = lto_new_out_decl_state ();
state->cgraph_node_encoder = lto_cgraph_encoder_new ();
state->varpool_node_encoder = lto_varpool_encoder_new ();
lto_push_out_decl_state (state);
gcc_assert (flag_wpa);