aboutsummaryrefslogtreecommitdiff
path: root/gcc/emit-rtl.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2015-12-19 21:58:02 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2015-12-19 21:58:02 +0000
commit8073cbd49367aa17c609859e47e5ef3953f60b66 (patch)
tree679c22de52788aa1b63e543e49f16aedae25883d /gcc/emit-rtl.c
parent94d7642bda42e9105eed3038039417714acca729 (diff)
downloadgcc-8073cbd49367aa17c609859e47e5ef3953f60b66.zip
gcc-8073cbd49367aa17c609859e47e5ef3953f60b66.tar.gz
gcc-8073cbd49367aa17c609859e47e5ef3953f60b66.tar.bz2
re PR rtl-optimization/68910 (huge stack frame and poor code with instruction scheduling at -O2)
PR rtl-optimization/68910 * emit-rtl.c (set_unique_reg_note) <>REG_EQUAL>: Add bypass for USEs. * config/sparc/sparc.md (anddi3): Enable only in 64-bit mode. (iordi3): Likewise. (xordi3): Likewise. (one_cmpldi2): Likewise. (*anddi3_sp32): Delete. (*and_not_di_sp32): Likewise. (*iordi3_sp32): Likewise. (*or_not_di_sp32): Likewise. (*xordi3_sp32): Likewise. (*xor_not_di_sp32): Likewise. (32-bit DImode logical operations splitter): Likewise. (*one_cmpldi2_sp32): Likewise. From-SVN: r231851
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r--gcc/emit-rtl.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index c6a37e1..dbc0af0 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -5239,7 +5239,8 @@ set_unique_reg_note (rtx insn, enum reg_note kind, rtx datum)
{
case REG_EQUAL:
case REG_EQUIV:
- if (!set_for_reg_notes (insn))
+ /* We need to support the REG_EQUAL on USE trick of find_reloads. */
+ if (!set_for_reg_notes (insn) && GET_CODE (PATTERN (insn)) != USE)
return NULL_RTX;
/* Don't add ASM_OPERAND REG_EQUAL/REG_EQUIV notes.