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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159230
138bc75d-0d04-0410-961f-
82ee72b054a4
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.
* cgraphbuild.c: Include except.h
(record_type_list, record_eh_tables): New function.
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;
}
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);
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;
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. */
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);
#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
/* 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;
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);
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);