aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2013-06-06 21:12:06 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2013-06-06 21:12:06 +0000
commit37684c463383390f1497f506c4cbf99c40b83cac (patch)
tree92f97fcdd31c62c1bad9155ae804396b7eb59738
parenta322ed0ced28e09692861c024592a16dcb324164 (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/config/i386/i386.c2
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)