diff mbox

IRA fix in find_moveable_pseudos, PR53180

Message ID 4FB12FB8.8050303@codesourcery.com
State New
Headers show

Commit Message

Bernd Schmidt May 14, 2012, 4:15 p.m. UTC
We are trying to examine all uses of a reg, but overlook those in a 
REG_EQUIV note. This is problematic as documented in the PR.

The following patch fixes it according to Pat Haugen. Bootstrapped and 
tested on x86_64-linux, ok?


Bernd

Comments

Vladimir Makarov May 14, 2012, 6:31 p.m. UTC | #1
On 05/14/2012 12:15 PM, Bernd Schmidt wrote:
> We are trying to examine all uses of a reg, but overlook those in a 
> REG_EQUIV note. This is problematic as documented in the PR.
>
> The following patch fixes it according to Pat Haugen. Bootstrapped and 
> tested on x86_64-linux, ok?
>
Ok, thanks.
diff mbox

Patch

	* ira.c (find_moveable_pseudos): Skip registers whose
	DF_REG_EQ_USE_COUNT is nonzero.

Index: gcc/ira.c
===================================================================
--- gcc/ira.c	(revision 186875)
+++ gcc/ira.c	(working copy)
@@ -3764,6 +3764,7 @@  find_moveable_pseudos (void)
 	    if (DF_REG_DEF_COUNT (regno) != 1
 		|| !DF_REF_INSN_INFO (def)
 		|| HARD_REGISTER_NUM_P (regno)
+		|| DF_REG_EQ_USE_COUNT (regno) > 0
 		|| (!INTEGRAL_MODE_P (mode) && !FLOAT_MODE_P (mode)))
 	      continue;
 	    def_insn = DF_REF_INSN (def);