From 0cc9609c42e4816ce68e2085ca8d14ef82e4b702 Mon Sep 17 00:00:00 2001 From: wilson Date: Wed, 21 Apr 2010 05:29:11 +0000 Subject: [PATCH] PR rtl-optimization/43520 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with zero available registers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158584 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 7 ++++++- gcc/ira-lives.c | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index cdb7c2b8ad6..361121be846 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-04-20 James E. Wilson + + PR rtl-optimization/43520 + * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with + zero available registers. + 2010-04-20 Kaveh R. Ghazi * builtins.c (fold_builtin_cproj): Fold more cases. @@ -114,7 +120,6 @@ 2010-04-19 James E. Wilson - PR rtl-optimization/43520 * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make ar.lc fixed and call-used. diff --git a/gcc/ira-lives.c b/gcc/ira-lives.c index 09316b510f2..7ced1a7a73d 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]); -- 2.11.4.GIT