diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2013-06-06 21:12:06 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2013-06-06 21:12:06 +0000 |
commit | 37684c463383390f1497f506c4cbf99c40b83cac (patch) | |
tree | 92f97fcdd31c62c1bad9155ae804396b7eb59738 | |
parent | a322ed0ced28e09692861c024592a16dcb324164 (diff) | |
download | gcc-37684c463383390f1497f506c4cbf99c40b83cac.zip gcc-37684c463383390f1497f506c4cbf99c40b83cac.tar.gz gcc-37684c463383390f1497f506c4cbf99c40b83cac.tar.bz2 |
re PR rtl-optimization/57468 (26% performance drop on important benchmark after r199298.)
2013-06-06 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/57468
* config/i386/i386.c (inline_secondary_memory_needed): Ignore
spilled pseudos.
From-SVN: r199764
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 2 |
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index aa76576..e4ebfa7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2013-06-06 Vladimir Makarov <vmakarov@redhat.com> + PR rtl-optimization/57468 + * config/i386/i386.c (inline_secondary_memory_needed): Ignore + spilled pseudos. + +2013-06-06 Vladimir Makarov <vmakarov@redhat.com> + PR rtl-optimization/57459 * lra-constraints.c (update_ebb_live_info): Fix typo for operand type when setting live regs. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 77962c1..5f6a5d5 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -33951,6 +33951,8 @@ static inline bool inline_secondary_memory_needed (enum reg_class class1, enum reg_class class2, enum machine_mode mode, int strict) { + if (lra_in_progress && (class1 == NO_REGS || class2 == NO_REGS)) + return false; if (MAYBE_FLOAT_CLASS_P (class1) != FLOAT_CLASS_P (class1) || MAYBE_FLOAT_CLASS_P (class2) != FLOAT_CLASS_P (class2) || MAYBE_SSE_CLASS_P (class1) != SSE_CLASS_P (class1) |