summaryrefslogtreecommitdiffstats
path: root/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99413.patch
blob: 3f873e7fe6ae5122d3999f5d7dc050ed43c837c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2010-10-13  Chung-Lin Tang  <cltang@codesourcery.com>

	Backport from mainline:

	2010-04-20  James E. Wilson  <wilson@codesourcery.com>

	gcc/
	PR rtl-optimization/43520
	* ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
	zero available registers.

=== modified file 'gcc/ira-lives.c'
Index: gcc-4.5/gcc/ira-lives.c
===================================================================
--- gcc-4.5.orig/gcc/ira-lives.c
+++ gcc-4.5/gcc/ira-lives.c
@@ -805,6 +805,9 @@ ira_implicitly_set_insn_hard_regs (HARD_
 			? 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]);