Commit 53a51cef by Jakub Jelinek Committed by Jakub Jelinek

re PR target/41279 (252.eon performance regression)

	PR target/41279
	* cfgloopanal.c (num_loop_insns): Don't increment ninsns for each bb
	before insn counting loop now that BB_END (bb) is counted.  Ensure
	the return value isn't zero.

From-SVN: r152324
parent 3c8348d3
2009-09-30 Jakub Jelinek <jakub@redhat.com>
PR target/41279
* cfgloopanal.c (num_loop_insns): Don't increment ninsns for each bb
before insn counting loop now that BB_END (bb) is counted. Ensure
the return value isn't zero.
2009-09-30 Nick Clifton <nickc@redhat.com> 2009-09-30 Nick Clifton <nickc@redhat.com>
* config.gcc (sh-symbianelf): Replace definition of extra_objs * config.gcc (sh-symbianelf): Replace definition of extra_objs
...@@ -175,12 +175,14 @@ num_loop_insns (const struct loop *loop) ...@@ -175,12 +175,14 @@ num_loop_insns (const struct loop *loop)
for (i = 0; i < loop->num_nodes; i++) for (i = 0; i < loop->num_nodes; i++)
{ {
bb = bbs[i]; bb = bbs[i];
ninsns++;
FOR_BB_INSNS (bb, insn) FOR_BB_INSNS (bb, insn)
if (NONDEBUG_INSN_P (insn)) if (NONDEBUG_INSN_P (insn))
ninsns++; ninsns++;
} }
free(bbs); free (bbs);
if (!ninsns)
ninsns = 1; /* To avoid division by zero. */
return ninsns; return ninsns;
} }
...@@ -209,7 +211,7 @@ average_num_loop_insns (const struct loop *loop) ...@@ -209,7 +211,7 @@ average_num_loop_insns (const struct loop *loop)
: (bb->frequency * BB_FREQ_MAX) / loop->header->frequency; : (bb->frequency * BB_FREQ_MAX) / loop->header->frequency;
ninsns += binsns * ratio; ninsns += binsns * ratio;
} }
free(bbs); free (bbs);
ninsns /= BB_FREQ_MAX; ninsns /= BB_FREQ_MAX;
if (!ninsns) if (!ninsns)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment