]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR rtl-optimization/43520 (gcc.dg/pr43058.c uses way too memory on ia64)
authorJames E. Wilson <wilson@codesourcery.com>
Wed, 21 Apr 2010 05:29:11 +0000 (05:29 +0000)
committerJim Wilson <wilson@gcc.gnu.org>
Wed, 21 Apr 2010 05:29:11 +0000 (22:29 -0700)
PR rtl-optimization/43520
* ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
zero available registers.

From-SVN: r158584

gcc/ChangeLog
gcc/ira-lives.c

index cdb7c2b8ad6bdb20f22a54e5401dd0f3b326c710..361121be8461fd951b3a5403549995ffb1923779 100644 (file)
@@ -1,3 +1,9 @@
+2010-04-20  James E. Wilson  <wilson@codesourcery.com>
+
+       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  <ghazi@caip.rutgers.edu>
 
        * builtins.c (fold_builtin_cproj): Fold more cases.
 
 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
 
-       PR rtl-optimization/43520
        * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
        ar.lc fixed and call-used.
 
index 09316b510f2fd64d57c3e59be06ef4250153100a..7ced1a7a73db5ebfc624a09ba39919ff06487059 100644 (file)
@@ -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]);