aboutsummaryrefslogtreecommitdiff
path: root/gcc/ira-lives.c
diff options
context:
space:
mode:
authorJames E. Wilson <wilson@codesourcery.com>2010-04-21 05:29:11 +0000
committerJim Wilson <wilson@gcc.gnu.org>2010-04-20 22:29:11 -0700
commit4811db8d424dfb3527a921504c800520ca89ad36 (patch)
tree9b89828fb0b2f46f11410d46f95e08aaf06c3bbd /gcc/ira-lives.c
parentb034c94334bc7a7983a33c53e496577e3db52db7 (diff)
downloadgcc-4811db8d424dfb3527a921504c800520ca89ad36.zip
gcc-4811db8d424dfb3527a921504c800520ca89ad36.tar.gz
gcc-4811db8d424dfb3527a921504c800520ca89ad36.tar.bz2
re PR rtl-optimization/43520 (gcc.dg/pr43058.c uses way too memory on ia64)
PR rtl-optimization/43520 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with zero available registers. From-SVN: r158584
Diffstat (limited to 'gcc/ira-lives.c')
-rw-r--r--gcc/ira-lives.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/ira-lives.c b/gcc/ira-lives.c
index 09316b5..7ced1a7 100644
--- a/gcc/ira-lives.c
+++ b/gcc/ira-lives.c
@@ -805,6 +805,9 @@ ira_implicitly_set_insn_hard_regs (HARD_REG_SET *set)
? GENERAL_REGS
: REG_CLASS_FROM_CONSTRAINT (c, p));
if (cl != NO_REGS
+ /* There is no register pressure problem if all of the
+ regs in this class are fixed. */
+ && ira_available_class_regs[cl] != 0
&& (ira_available_class_regs[cl]
<= ira_reg_class_nregs[cl][mode]))
IOR_HARD_REG_SET (*set, reg_class_contents[cl]);