static void
tail_duplicate (void)
{
- fibnode_t *blocks = xcalloc (last_basic_block, sizeof (fibnode_t));
- basic_block *trace = xmalloc (sizeof (basic_block) * n_basic_blocks);
- int *counts = xmalloc (sizeof (int) * last_basic_block);
+ fibnode_t *blocks = XCNEWVEC (fibnode_t, last_basic_block);
+ basic_block *trace = XNEWVEC (basic_block, n_basic_blocks);
+ int *counts = XNEWVEC (int, last_basic_block);
int ninsns = 0, nduplicated = 0;
gcov_type weighted_insns = 0, traced_insns = 0;
fibheap_t heap = fibheap_new ();
cfg_layout_initialize (flags);
mark_dfs_back_edges ();
if (dump_file)
- dump_flow_info (dump_file);
+ dump_flow_info (dump_file, dump_flags);
tail_duplicate ();
layout_superblocks ();
if (dump_file)
- dump_flow_info (dump_file);
+ dump_flow_info (dump_file, dump_flags);
cfg_layout_finalize ();
/* Merge basic blocks in duplicated traces. */
}
/* Run tracer. */
-static void
+static unsigned int
rest_of_handle_tracer (void)
{
if (dump_file)
- dump_flow_info (dump_file);
+ dump_flow_info (dump_file, dump_flags);
tracer (0);
cleanup_cfg (CLEANUP_EXPENSIVE);
reg_scan (get_insns (), max_reg_num ());
+ return 0;
}
struct tree_opt_pass pass_tracer =