diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2015-12-19 21:58:02 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2015-12-19 21:58:02 +0000 |
commit | 8073cbd49367aa17c609859e47e5ef3953f60b66 (patch) | |
tree | 679c22de52788aa1b63e543e49f16aedae25883d /gcc/emit-rtl.c | |
parent | 94d7642bda42e9105eed3038039417714acca729 (diff) | |
download | gcc-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.c | 3 |
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. |