Add implicit parameter to find_all_hard_reg_sets
authorvries <vries@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 25 Apr 2014 11:21:18 +0000 (11:21 +0000)
committervries <vries@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 25 Apr 2014 11:21:18 +0000 (11:21 +0000)
2014-04-25  Radovan Obradovic  <robradovic@mips.com>
            Tom de Vries  <tom@codesourcery.com>

* rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
handle.
* rtl.h (find_all_hard_reg_sets): Add bool parameter.
* haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
new argument to find_all_hard_reg_sets call.

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

gcc/ChangeLog
gcc/haifa-sched.c
gcc/rtl.h
gcc/rtlanal.c

index b43b317..4a0af82 100644 (file)
@@ -1,3 +1,12 @@
+2014-04-25  Radovan Obradovic  <robradovic@mips.com>
+            Tom de Vries  <tom@codesourcery.com>
+
+       * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
+       handle.
+       * rtl.h (find_all_hard_reg_sets): Add bool parameter.
+       * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
+       new argument to find_all_hard_reg_sets call.
+
 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
        * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
index 2d66e5c..5d16b4d 100644 (file)
@@ -1299,7 +1299,7 @@ recompute_todo_spec (rtx next, bool for_backtrack)
          {
            HARD_REG_SET t;
 
-           find_all_hard_reg_sets (prev, &t);
+           find_all_hard_reg_sets (prev, &t, true);
            if (TEST_HARD_REG_BIT (t, regno))
              return HARD_DEP;
            if (prev == pro)
@@ -3082,7 +3082,7 @@ check_clobbered_conditions (rtx insn)
   if ((current_sched_info->flags & DO_PREDICATION) == 0)
     return;
 
-  find_all_hard_reg_sets (insn, &t);
+  find_all_hard_reg_sets (insn, &t, true);
 
  restart:
   for (i = 0; i < ready.n_ready; i++)
index 3a526a1..595b699 100644 (file)
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -2042,7 +2042,7 @@ extern const_rtx set_of (const_rtx, const_rtx);
 extern void record_hard_reg_sets (rtx, const_rtx, void *);
 extern void record_hard_reg_uses (rtx *, void *);
 #ifdef HARD_CONST
-extern void find_all_hard_reg_sets (const_rtx, HARD_REG_SET *);
+extern void find_all_hard_reg_sets (const_rtx, HARD_REG_SET *, bool);
 #endif
 extern void note_stores (const_rtx, void (*) (rtx, const_rtx, void *), void *);
 extern void note_uses (rtx *, void (*) (rtx *, void *), void *);
index 98fbacc..284c475 100644 (file)
@@ -1046,13 +1046,13 @@ record_hard_reg_sets (rtx x, const_rtx pat ATTRIBUTE_UNUSED, void *data)
 /* Examine INSN, and compute the set of hard registers written by it.
    Store it in *PSET.  Should only be called after reload.  */
 void
-find_all_hard_reg_sets (const_rtx insn, HARD_REG_SET *pset)
+find_all_hard_reg_sets (const_rtx insn, HARD_REG_SET *pset, bool implicit)
 {
   rtx link;
 
   CLEAR_HARD_REG_SET (*pset);
   note_stores (PATTERN (insn), record_hard_reg_sets, pset);
-  if (CALL_P (insn))
+  if (implicit && CALL_P (insn))
     IOR_HARD_REG_SET (*pset, call_used_reg_set);
   for (link = REG_NOTES (insn); link; link = XEXP (link, 1))
     if (REG_NOTE_KIND (link) == REG_INC)