c6x.c (try_rename_operands): Do not depend on gcc_assert evaluating its argument...
authorSandra Loosemore <sandra@codesourcery.com>
Wed, 1 Jul 2015 02:15:32 +0000 (22:15 -0400)
committerSandra Loosemore <sandra@gcc.gnu.org>
Wed, 1 Jul 2015 02:15:32 +0000 (22:15 -0400)
2015-06-30  Sandra Loosemore <sandra@codesourcery.com>

gcc/
* config/c6x/c6x.c (try_rename_operands): Do not depend on
gcc_assert evaluating its argument for side-effect.

From-SVN: r225221

gcc/ChangeLog
gcc/config/c6x/c6x.c

index 65b3ffc..bedeee1 100644 (file)
@@ -1,3 +1,8 @@
+2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
+
+       * config/c6x/c6x.c (try_rename_operands): Do not depend on
+       gcc_assert evaluating its argument for side-effect.
+
 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
 
        PR target/64833
index b76a268..159335d 100644 (file)
@@ -3450,6 +3450,7 @@ try_rename_operands (rtx_insn *head, rtx_insn *tail, unit_req_table reqs,
   int best_reg, old_reg;
   vec<du_head_p> involved_chains = vNULL;
   unit_req_table new_reqs;
+  bool ok;
 
   for (i = 0, tmp_mask = op_mask; tmp_mask; i++)
     {
@@ -3516,7 +3517,8 @@ try_rename_operands (rtx_insn *head, rtx_insn *tail, unit_req_table reqs,
   best_reg =
     find_rename_reg (this_head, super_class, &unavailable, old_reg, true);
 
-  gcc_assert (regrename_do_replace (this_head, best_reg));
+  ok = regrename_do_replace (this_head, best_reg);
+  gcc_assert (ok);
 
   count_unit_reqs (new_reqs, head, PREV_INSN (tail));
   merge_unit_reqs (new_reqs);
@@ -3529,7 +3531,10 @@ try_rename_operands (rtx_insn *head, rtx_insn *tail, unit_req_table reqs,
               unit_req_imbalance (reqs), unit_req_imbalance (new_reqs));
     }
   if (unit_req_imbalance (new_reqs) > unit_req_imbalance (reqs))
-    gcc_assert (regrename_do_replace (this_head, old_reg));
+    {
+      ok = regrename_do_replace (this_head, old_reg);
+      gcc_assert (ok);
+    }
   else
     memcpy (reqs, new_reqs, sizeof (unit_req_table));