OSDN Git Service

PR rtl-optimization/41862
authorsteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 3 Jan 2010 22:41:22 +0000 (22:41 +0000)
committersteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 3 Jan 2010 22:41:22 +0000 (22:41 +0000)
* store-motion.c (store_killed_in_insn, compute_store_table,
remove_reachable_equiv_notes, replace_store_insn,
build_store_vectors): Ignore all DEBUG_INSNs.

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

gcc/ChangeLog
gcc/store-motion.c

index 414dc2c..203039f 100644 (file)
@@ -1,3 +1,10 @@
+2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
+
+       PR rtl-optimization/41862
+       * store-motion.c (store_killed_in_insn, compute_store_table,
+       remove_reachable_equiv_notes, replace_store_insn,
+       build_store_vectors): Ignore all DEBUG_INSNs.
+
 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR lto/41564
 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR lto/41564
index ffccd22..8cb75d7 100644 (file)
@@ -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;
 
 {
   const_rtx reg, base, note, pat;
 
-  if (!INSN_P (insn))
+  if (! NONDEBUG_INSN_P (insn))
     return false;
 
   if (CALL_P (insn))
     return false;
 
   if (CALL_P (insn))
@@ -667,7 +667,7 @@ compute_store_table (void)
       FOR_BB_INSNS (bb, insn)
        {
 
       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++)
            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)
        {
       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++)
            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))
        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))
          {
            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))
      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)
       {
        set = single_set (insn);
        if (!set)
@@ -1070,7 +1070,7 @@ build_store_vectors (void)
       memset (regs_set_in_block, 0, sizeof (int) * max_gcse_regno);
 
       FOR_BB_INSNS (bb, insn)
       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++)
          {
            df_ref *def_rec;
            for (def_rec = DF_INSN_DEFS (insn); *def_rec; def_rec++)