This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[vta] ensure num_loop_insns does not return zero
- From: Alexandre Oliva <aoliva at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Thu, 20 Nov 2008 20:27:51 -0200
- Subject: [vta] ensure num_loop_insns does not return zero
num_loop_insns() used to not count the BB_END, and increment ninsns
once per block. I changed it back in July to avoid differences caused
by debug insns at the end of a block, but this caused some testsuite
regressions (division by zero) for loops that contained only debug
insns. Oops.
Fixed as follows.
for gcc/ChangeLog.vta
from Alexandre Oliva <aoliva@redhat.com>
* cfgloopanal.c (num_loop_insns): Ensure ninsns is never zero.
Index: gcc/cfgloopanal.c
===================================================================
--- gcc/cfgloopanal.c.orig 2008-10-10 09:31:05.000000000 -0300
+++ gcc/cfgloopanal.c 2008-11-17 15:28:26.000000000 -0200
@@ -173,7 +173,7 @@ num_loop_insns (const struct loop *loop)
for (i = 0; i < loop->num_nodes; i++)
{
bb = bbs[i];
-
+ ninsns++;
FOR_BB_INSNS (bb, insn)
if (INSN_P (insn) && !DEBUG_INSN_P (insn))
ninsns++;
--
Alexandre Oliva http://www.lsd.ic.unicamp.br/~oliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/ FSF Latin America board member
Free Software Evangelist Red Hat Brazil Compiler Engineer