void finish_optimization_passes (void) { /* LLVM LOCAL begin Dead code strip cc1. */ #ifdef ENABLE_LLVM return; #else enum tree_dump_index i; struct dump_file_info *dfi; char *name; timevar_push (TV_DUMP); if (profile_arc_flag || flag_test_coverage || flag_branch_probabilities) { dump_file = dump_begin (pass_profile.static_pass_number, NULL); end_branch_prob (); if (dump_file) dump_end (pass_profile.static_pass_number, dump_file); } if (optimize > 0) { dump_file = dump_begin (pass_combine.static_pass_number, NULL); if (dump_file) { dump_combine_total_stats (dump_file); dump_end (pass_combine.static_pass_number, dump_file); } } /* Do whatever is necessary to finish printing the graphs. */ if (graph_dump_format != no_graph) for (i = TDI_end; (dfi = get_dump_file_info (i)) != NULL; ++i) if (dump_initialized_p (i) && (dfi->flags & TDF_GRAPH) != 0 && (name = get_dump_file_name (i)) != NULL) { finish_graph_dump_file (name); free (name); } timevar_pop (TV_DUMP); #endif /* LLVM LOCAL end Dead code strip cc1. */ }
FILE * dump_begin (enum tree_dump_index phase, int *flag_ptr) { char *name; struct dump_file_info *dfi; FILE *stream; if (phase == TDI_none || !dump_enabled_p (phase)) return NULL; name = get_dump_file_name (phase); dfi = get_dump_file_info (phase); stream = fopen (name, dfi->state < 0 ? "w" : "a"); if (!stream) error ("could not open dump file %qs: %s", name, strerror (errno)); else dfi->state = 1; free (name); if (flag_ptr) *flag_ptr = dfi->flags; return stream; }