PR rtl-optimization/44404
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 7 Jul 2010 15:26:48 +0000 (15:26 +0000)
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 7 Jul 2010 15:26:48 +0000 (15:26 +0000)
* auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
possible, use reg_overlap_mentioned_p instead.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161920 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/auto-inc-dec.c

index 3a2fcf4..934cacd 100644 (file)
@@ -1,3 +1,9 @@
+2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
+
+       PR rtl-optimization/44404
+       * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
+       possible, use reg_overlap_mentioned_p instead.
+
 2010-07-07  Duncan Sands  <baldrick@free.fr>
 
        PR middle-end/41355
index 94dffc9..20083ad 100644 (file)
@@ -1068,14 +1068,7 @@ find_inc (bool first_try)
       /* For the post_add to work, the result_reg of the inc must not be
         used in the mem insn since this will become the new index
         register.  */
-      if (count_occurrences (PATTERN (mem_insn.insn), inc_insn.reg_res, 1) == 0
-         && reg_overlap_mentioned_p (inc_insn.reg_res, PATTERN (mem_insn.insn)))
-       {
-         debug_rtx (mem_insn.insn);
-         debug_rtx (inc_insn.reg_res);
-         gcc_unreachable ();
-       }
-      if (count_occurrences (PATTERN (mem_insn.insn), inc_insn.reg_res, 1) != 0)
+      if (reg_overlap_mentioned_p (inc_insn.reg_res, PATTERN (mem_insn.insn)))
        {
          if (dump_file)
            fprintf (dump_file, "base reg replacement failure.\n");