summaryrefslogtreecommitdiff
path: root/gcc/store-motion.c
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2010-01-04 07:17:41 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2010-01-04 07:17:41 +0000
commit14f02f29c87a1dad04bce2f4e73f81c13322e114 (patch)
tree05ab7e1771a466532857290dfb50157c94856ccb /gcc/store-motion.c
parent110557507c069b5d503b683d0ea74debd893e025 (diff)
downloadgcc-14f02f29c87a1dad04bce2f4e73f81c13322e114.tar.gz
2010-01-04 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 155603 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@155605 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/store-motion.c')
-rw-r--r--gcc/store-motion.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/gcc/store-motion.c b/gcc/store-motion.c
index 4878729eec0..8cb75d7ac27 100644
--- a/gcc/store-motion.c
+++ b/gcc/store-motion.c
@@ -398,7 +398,7 @@ store_killed_in_insn (const_rtx x, const_rtx x_regs, const_rtx insn, int after)
{
const_rtx reg, base, note, pat;
- if (!INSN_P (insn))
+ if (! NONDEBUG_INSN_P (insn))
return false;
if (CALL_P (insn))
@@ -667,7 +667,7 @@ compute_store_table (void)
FOR_BB_INSNS (bb, insn)
{
- if (! INSN_P (insn))
+ if (! NONDEBUG_INSN_P (insn))
continue;
for (def_rec = DF_INSN_DEFS (insn); *def_rec; def_rec++)
@@ -678,7 +678,7 @@ compute_store_table (void)
memset (already_set, 0, sizeof (int) * max_gcse_regno);
FOR_BB_INSNS (bb, insn)
{
- if (! INSN_P (insn))
+ if (! NONDEBUG_INSN_P (insn))
continue;
for (def_rec = DF_INSN_DEFS (insn); *def_rec; def_rec++)
@@ -897,7 +897,7 @@ remove_reachable_equiv_notes (basic_block bb, struct st_expr *smexpr)
last = NEXT_INSN (BB_END (bb));
for (insn = BB_HEAD (bb); insn != last; insn = NEXT_INSN (insn))
- if (INSN_P (insn))
+ if (NONDEBUG_INSN_P (insn))
{
note = find_reg_equal_equiv_note (insn);
if (!note || !exp_equiv_p (XEXP (note, 0), mem, 0, true))
@@ -963,7 +963,7 @@ replace_store_insn (rtx reg, rtx del, basic_block bb, struct st_expr *smexpr)
they are no longer accurate provided that they are reached by this
definition, so drop them. */
for (; insn != NEXT_INSN (BB_END (bb)); insn = NEXT_INSN (insn))
- if (INSN_P (insn))
+ if (NONDEBUG_INSN_P (insn))
{
set = single_set (insn);
if (!set)
@@ -1067,8 +1067,10 @@ build_store_vectors (void)
FOR_EACH_BB (bb)
{
+ memset (regs_set_in_block, 0, sizeof (int) * max_gcse_regno);
+
FOR_BB_INSNS (bb, insn)
- if (INSN_P (insn))
+ if (NONDEBUG_INSN_P (insn))
{
df_ref *def_rec;
for (def_rec = DF_INSN_DEFS (insn); *def_rec; def_rec++)