diff options
author | Uros Bizjak <uros@gcc.gnu.org> | 2009-04-28 18:18:17 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2009-04-28 18:18:17 +0200 |
commit | f1028b9da4ea5614c012d87c928e68300cd786b6 (patch) | |
tree | 3014ac421165da8bcefc7487391364b1586f1f22 /gcc/ira-conflicts.c | |
parent | 9f1bdf53bddd5183e2c4bd62a92e83648671b8b2 (diff) | |
download | gcc-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.c | 2 |
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) |