aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRadovan Obradovic <robradovic@mips.com>2014-04-25 11:21:18 +0000
committerTom de Vries <vries@gcc.gnu.org>2014-04-25 11:21:18 +0000
commit356bf5934944d4259bf8feffed3f749c71fc2e37 (patch)
tree17d51591cd963cb85249cafcbb3755cfffa2cad8
parentfe65a7edc6f7a6b86e3f5c4f682b4bb48c429e85 (diff)
downloadgcc-356bf5934944d4259bf8feffed3f749c71fc2e37.zip
gcc-356bf5934944d4259bf8feffed3f749c71fc2e37.tar.gz
gcc-356bf5934944d4259bf8feffed3f749c71fc2e37.tar.bz2
Add implicit parameter to find_all_hard_reg_sets
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. Co-Authored-By: Tom de Vries <tom@codesourcery.com> From-SVN: r209798
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/haifa-sched.c4
-rw-r--r--gcc/rtl.h2
-rw-r--r--gcc/rtlanal.c4
4 files changed, 14 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b43b317..4a0af82 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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):
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c
index 2d66e5c..5d16b4d 100644
--- a/gcc/haifa-sched.c
+++ b/gcc/haifa-sched.c
@@ -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++)
diff --git a/gcc/rtl.h b/gcc/rtl.h
index 3a526a1..595b699 100644
--- 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 *);
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index 98fbacc..284c475 100644
--- a/gcc/rtlanal.c
+++ b/gcc/rtlanal.c
@@ -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)