From: law Date: Sun, 21 Nov 2004 20:41:37 +0000 (+0000) Subject: * cfg.c (update_bb_profile_for_threading): Do not rescale the X-Git-Tag: upstream/4.9.2~65809 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2260bbe16dcf862ea9d372108e58055b035315ce;p=platform%2Fupstream%2Flinaro-gcc.git * cfg.c (update_bb_profile_for_threading): Do not rescale the successor probabilities if they are not going to change. Pull division out of loop if we do need to rescale successor probabilities. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90987 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b4f0c52..5c8f32e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2004-11-21 Jeff Law + * cfg.c (update_bb_profile_for_threading): Do not rescale the + successor probabilities if they are not going to change. Pull + division out of loop if we do need to rescale successor probabilities. + * tree-ssa-threadupdate.c (redirection_data_hash): Use the index of the destination block for the hash value rather than hashing a pointer. diff --git a/gcc/cfg.c b/gcc/cfg.c index 67b0598..b008bad 100644 --- a/gcc/cfg.c +++ b/gcc/cfg.c @@ -941,9 +941,13 @@ update_bb_profile_for_threading (basic_block bb, int edge_frequency, for (; (c = ei_safe_edge (ei)); ei_next (&ei)) c->probability = 0; } - else - FOR_EACH_EDGE (c, ei, bb->succs) - c->probability = ((c->probability * REG_BR_PROB_BASE) / (double) prob); + else if (prob != REG_BR_PROB_BASE) + { + int scale = REG_BR_PROB_BASE / prob; + + FOR_EACH_EDGE (c, ei, bb->succs) + c->probability *= scale; + } if (bb != taken_edge->src) abort ();