aboutsummaryrefslogtreecommitdiff
path: root/gcc/ira-conflicts.c
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2009-04-28 18:18:17 +0200
committerUros Bizjak <uros@gcc.gnu.org>2009-04-28 18:18:17 +0200
commitf1028b9da4ea5614c012d87c928e68300cd786b6 (patch)
tree3014ac421165da8bcefc7487391364b1586f1f22 /gcc/ira-conflicts.c
parent9f1bdf53bddd5183e2c4bd62a92e83648671b8b2 (diff)
downloadgcc-f1028b9da4ea5614c012d87c928e68300cd786b6.zip
gcc-f1028b9da4ea5614c012d87c928e68300cd786b6.tar.gz
gcc-f1028b9da4ea5614c012d87c928e68300cd786b6.tar.bz2
re PR rtl-optimization/39914 (96% performance regression in floating point code; part of the problem started 2009/03/12-13)
PR rtl-optimization/39914 * ira-conflicts.c (ira_build_conflicts): Prohibit call used registers for allocnos created from user-defined variables only when not optimizing. From-SVN: r146904
Diffstat (limited to 'gcc/ira-conflicts.c')
-rw-r--r--gcc/ira-conflicts.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/ira-conflicts.c b/gcc/ira-conflicts.c
index 399a28a..29c77c9 100644
--- a/gcc/ira-conflicts.c
+++ b/gcc/ira-conflicts.c
@@ -806,7 +806,7 @@ ira_build_conflicts (void)
if ((! flag_caller_saves && ALLOCNO_CALLS_CROSSED_NUM (a) != 0)
/* For debugging purposes don't put user defined variables in
callee-clobbered registers. */
- || (optimize <= 1
+ || (optimize == 0
&& (attrs = REG_ATTRS (regno_reg_rtx [ALLOCNO_REGNO (a)])) != NULL
&& (decl = attrs->decl) != NULL
&& VAR_OR_FUNCTION_DECL_P (decl)