Remove global call sets: cfgcleanup.c
authorRichard Sandiford <richard.sandiford@arm.com>
Mon, 30 Sep 2019 16:20:12 +0000 (16:20 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Mon, 30 Sep 2019 16:20:12 +0000 (16:20 +0000)
old_insns_match_p just tests whether two instructions are
similar enough to merge.  With insn_callee_abi it makes more
sense to compare the ABIs directly.

2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* cfgcleanup.c (old_insns_match_p): Compare the ABIs of calls
instead of the call-clobbered sets.

From-SVN: r276314

gcc/ChangeLog
gcc/cfgcleanup.c

index d912a87..a3e4ff2 100644 (file)
@@ -1,5 +1,10 @@
 2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
 
+       * cfgcleanup.c (old_insns_match_p): Compare the ABIs of calls
+       instead of the call-clobbered sets.
+
+2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>
+
        * caller-save.c (setup_save_areas): Remove redundant |s of
        fixed_reg_set.
        (save_call_clobbered_regs): Likewise.  Use the call ABI rather
index 329fa0c..ced7e0a 100644 (file)
@@ -1227,13 +1227,7 @@ old_insns_match_p (int mode ATTRIBUTE_UNUSED, rtx_insn *i1, rtx_insn *i2)
            }
        }
 
-      HARD_REG_SET i1_used = insn_callee_abi (i1).full_reg_clobbers ();
-      HARD_REG_SET i2_used = insn_callee_abi (i2).full_reg_clobbers ();
-      /* ??? This preserves traditional behavior; it might not be needed.  */
-      i1_used |= fixed_reg_set;
-      i2_used |= fixed_reg_set;
-
-      if (i1_used != i2_used)
+      if (insn_callee_abi (i1) != insn_callee_abi (i2))
         return dir_none;
     }