diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/final.c | 4 | ||||
-rw-r--r-- | gcc/params.def | 2 |
3 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 58962a017ee..a01b0e28430 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Sun Dec 22 18:23:44 CET 2002 Jan Hubicka <jh@suse.cz> + + * params.def (tracer-min-branch-probability-feedback): Fix default. + * final.c (compute_alignments): Use profile to avoid code bloat. + 2002-12-22 Kazu Hirata <kazu@cs.umass.edu> * config/h8300/h8300.c (get_shift_alg): Make shift insn diff --git a/gcc/final.c b/gcc/final.c index c0a13223b7f..a3a9e7c5350 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -677,7 +677,8 @@ compute_alignments () int fallthru_frequency = 0, branch_frequency = 0, has_fallthru = 0; edge e; - if (GET_CODE (label) != CODE_LABEL) + if (GET_CODE (label) != CODE_LABEL + || probably_never_executed_bb_p (bb)) continue; max_log = LABEL_ALIGN (label); max_skip = LABEL_ALIGN_MAX_SKIP; @@ -716,6 +717,7 @@ compute_alignments () /* In case block is frequent and reached mostly by non-fallthru edge, align it. It is most likely a first block of loop. */ if (has_fallthru + && maybe_hot_bb_p (bb) && branch_frequency + fallthru_frequency > BB_FREQ_MAX / 10 && branch_frequency > fallthru_frequency * 2) { diff --git a/gcc/params.def b/gcc/params.def index d961189b3a5..70963f42e05 100644 --- a/gcc/params.def +++ b/gcc/params.def @@ -184,7 +184,7 @@ DEFPARAM(TRACER_MIN_BRANCH_PROBABILITY_FEEDBACK, "tracer-min-branch-probability-feedback", "Stop forward growth if the probability of best edge is less than \ this threshold (in percents). Used when profile feedback is available", - 30) + 80) DEFPARAM(TRACER_MIN_BRANCH_PROBABILITY, "tracer-min-branch-probability", "Stop forward growth if the probability of best edge is less than \ |