From 097c2d51de5728480afd2a42ae0f4a8d65e889a1 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Wed, 20 Jun 2001 19:12:34 +0200 Subject: [PATCH] toplev.c (rest_of_compilation): Run mark_constant_function before profile-arcs. * toplev.c (rest_of_compilation): Run mark_constant_function before profile-arcs. From-SVN: r43477 --- gcc/ChangeLog | 5 +++++ gcc/toplev.c | 10 +++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d258e10a6c3..4370b432943 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Wed Jun 20 19:10:48 CEST 2001 Jan Hubicka + + * toplev.c (rest_of_compilation): Run mark_constant_function + before profile-arcs. + Wed Jun 20 19:08:18 CEST 2001 Jan Hubicka * predict.c (estimate_loops_at_level, propagate_freq diff --git a/gcc/toplev.c b/gcc/toplev.c index 7272d0c6b65..eb6ec52a7ed 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -3258,6 +3258,15 @@ rest_of_compilation (decl) cleanup_cfg (); check_function_return_warnings (); + /* It may make more sense to mark constant functions after dead code is + eliminated by life_analyzis, but we need to do it early, as -fprofile-arcs + may insert code making function non-constant, but we still must consider + it as constant, otherwise -fbranch-probabilities will not read data back. + + life_analyzis rarely eliminates modification of external memory. + */ + mark_constant_function (); + close_dump_file (DFI_cfg, print_rtl_with_bb, insns); if (profile_arc_flag || flag_test_coverage || flag_branch_probabilities) @@ -3290,7 +3299,6 @@ rest_of_compilation (decl) flow_loops_free (&loops); } life_analysis (insns, rtl_dump_file, PROP_FINAL); - mark_constant_function (); timevar_pop (TV_FLOW); register_life_up_to_date = 1; -- 2.30.2