loop.c (strength_reduce): Don't move giv insn for biv turned giv below scan_start.
authorJ"orn Rennecke <amylaar@cygnus.co.uk>
Wed, 17 Feb 1999 09:01:07 +0000 (09:01 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Wed, 17 Feb 1999 09:01:07 +0000 (09:01 +0000)
* loop.c (strength_reduce): Don't move giv insn for biv turned giv
below scan_start.

From-SVN: r25264

gcc/ChangeLog
gcc/loop.c

index 0ad15e7a5897f1f4d7bb1aa846fc428b6e21e5ad..f36270cba0bf33c92bbe06a00b7fa7858a0f0607 100644 (file)
@@ -1,3 +1,8 @@
+Wed Feb 17 16:59:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
+
+       * loop.c (strength_reduce): Don't move giv insn for biv turned giv
+       below scan_start.
+
 Wed Feb 17 10:56:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * tree.c (tree_node_kind_names, print_obstack_name,
index 0979b999e5cc6becf095f96bca5859bca0d5eff7..932a72549bf5db3a04c6a42fc4c2501d5852ced5 100644 (file)
@@ -4053,6 +4053,7 @@ strength_reduce (scan_start, end, loop_top, insn_count,
              /* We can get better optimization if we can move the giv setting
                 before the first giv use.  */
              if (dominator
+                 && ! loop_insn_first_p (dominator, scan_start)
                  && ! reg_set_between_p (bl2->biv->src_reg, loop_start,
                                          dominator)
                  && ! reg_used_between_p (giv, loop_start, dominator)