]> gcc.gnu.org Git - gcc.git/commitdiff
cfgloopanal.c (num_loop_insns, [...]): Count only real insns.
authorZdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
Sun, 11 May 2003 22:54:33 +0000 (00:54 +0200)
committerZdenek Dvorak <rakdver@gcc.gnu.org>
Sun, 11 May 2003 22:54:33 +0000 (22:54 +0000)
* cfgloopanal.c (num_loop_insns, average_num_loop_insns): Count only
real insns.
* loop-unroll.c (unroll_loop_runtime_iterations): Remove superfluous
condition.

From-SVN: r66700

gcc/ChangeLog
gcc/cfgloopanal.c
gcc/loop-unroll.c

index 310984e6421c89ac58d407bd297fc398afc99812..da8a280c1004234810b2327639df8c2fbbcd20c6 100644 (file)
@@ -1,3 +1,10 @@
+2003-05-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       * cfgloopanal.c (num_loop_insns, average_num_loop_insns): Count only
+       real insns.
+       * loop-unroll.c (unroll_loop_runtime_iterations): Remove superfluous
+       condition.
+
 2003-05-11  Neil Booth  <neil@cat.daikokuya.co.uk>
 
        * doc/cpp.texi: Fix typos.
index 0843a006acbc080bfe10135b244c307bcc84183d..c3ef5a30739a5301fe7c64ab7572bf28ad529bf3 100644 (file)
@@ -1033,7 +1033,8 @@ num_loop_insns (loop)
       bb = bbs[i];
       ninsns++;
       for (insn = bb->head; insn != bb->end; insn = NEXT_INSN (insn))
-       ninsns++;
+       if (INSN_P (insn))
+         ninsns++;
     }
   free(bbs);
   
@@ -1057,7 +1058,8 @@ average_num_loop_insns (loop)
 
       binsns = 1;
       for (insn = bb->head; insn != bb->end; insn = NEXT_INSN (insn))
-       binsns++;
+       if (INSN_P (insn))
+         binsns++;
 
       ratio = loop->header->frequency == 0
              ? BB_FREQ_MAX
index efecd4d27d48089443c98a72dd910e53eb73e318..e8509de774ffd4a8f54cb10e8073947cff897004 100644 (file)
@@ -878,36 +878,33 @@ unroll_loop_runtime_iterations (loops, loop)
                DLTHE_FLAG_UPDATE_FREQ))
        abort ();
 
-      if (i != n_peel)
-       {
-         /* Create item for switch.  */
-         j = n_peel - i - (extra_zero_check ? 0 : 1);
-         p = REG_BR_PROB_BASE / (i + 2);
-
-         preheader = loop_split_edge_with (loop_preheader_edge (loop),
-                                           NULL_RTX, loops);
-         label = block_label (preheader);
-         start_sequence ();
-         do_compare_rtx_and_jump (copy_rtx (niter), GEN_INT (j), EQ, 0,
-                                  GET_MODE (desc->var), NULL_RTX, NULL_RTX,
-                                  label);
-         jump = get_last_insn ();
-         JUMP_LABEL (jump) = label;
-         REG_NOTES (jump)
-                 = gen_rtx_EXPR_LIST (REG_BR_PROB,
-                                      GEN_INT (p), REG_NOTES (jump));
+      /* Create item for switch.  */
+      j = n_peel - i - (extra_zero_check ? 0 : 1);
+      p = REG_BR_PROB_BASE / (i + 2);
+
+      preheader = loop_split_edge_with (loop_preheader_edge (loop),
+                                       NULL_RTX, loops);
+      label = block_label (preheader);
+      start_sequence ();
+      do_compare_rtx_and_jump (copy_rtx (niter), GEN_INT (j), EQ, 0,
+                              GET_MODE (desc->var), NULL_RTX, NULL_RTX,
+                              label);
+      jump = get_last_insn ();
+      JUMP_LABEL (jump) = label;
+      REG_NOTES (jump)
+             = gen_rtx_EXPR_LIST (REG_BR_PROB,
+                                  GEN_INT (p), REG_NOTES (jump));
        
-         LABEL_NUSES (label)++;
-         branch_code = get_insns ();
-         end_sequence ();
-
-         swtch = loop_split_edge_with (swtch->pred, branch_code, loops);
-         set_immediate_dominator (loops->cfg.dom, preheader, swtch);
-         swtch->succ->probability = REG_BR_PROB_BASE - p;
-         e = make_edge (swtch, preheader,
-                        swtch->succ->flags & EDGE_IRREDUCIBLE_LOOP);
-         e->probability = p;
-       }
+      LABEL_NUSES (label)++;
+      branch_code = get_insns ();
+      end_sequence ();
+
+      swtch = loop_split_edge_with (swtch->pred, branch_code, loops);
+      set_immediate_dominator (loops->cfg.dom, preheader, swtch);
+      swtch->succ->probability = REG_BR_PROB_BASE - p;
+      e = make_edge (swtch, preheader,
+                    swtch->succ->flags & EDGE_IRREDUCIBLE_LOOP);
+      e->probability = p;
     }
 
   if (extra_zero_check)
This page took 0.080425 seconds and 5 git commands to generate.