diff options
author | James E. Wilson <wilson@codesourcery.com> | 2010-04-21 05:29:11 +0000 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 2010-04-20 22:29:11 -0700 |
commit | 4811db8d424dfb3527a921504c800520ca89ad36 (patch) | |
tree | 9b89828fb0b2f46f11410d46f95e08aaf06c3bbd /gcc/ira-lives.c | |
parent | b034c94334bc7a7983a33c53e496577e3db52db7 (diff) | |
download | gcc-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.c | 3 |
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]); |