diff options
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/config/mips/mips.c | 4 |
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) { |
