aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/mips/mips.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0b679ae..e1a1d00 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2012-06-19 Maxim Kuvyrkov <maxim@codesourcery.com>
+
+ * config/mips/mips.c (mips_process_sync_loop): Emit cmp result only if
+ it is used.
+
2012-06-19 Tom de Vries <vries@codesourcery.com>
Maxim Kuvyrkov <maxim@codesourcery.com>
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 64b486d..3bbb3ea 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -12073,6 +12073,10 @@ mips_process_sync_loop (rtx insn, rtx *operands)
insn1 = get_attr_sync_insn1 (insn);
insn2 = get_attr_sync_insn2 (insn);
+ /* Don't bother setting CMP result that is never used. */
+ if (cmp && find_reg_note (insn, REG_UNUSED, cmp))
+ cmp = 0;
+
memmodel_attr = get_attr_sync_memmodel (insn);
switch (memmodel_attr)
{