This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, reload] PRE_INC with invalid hard reg


On 02/11/2016 10:45 AM, Alan Modra wrote:

Due to uses elsewhere in vsx instructions, reload chooses to put
psuedo 185 in fr31, which can't be used as a base register in the
following:

What code exactly makes the choice of fr31? I assume this is in reg_renumber, so it's IRA and not reload that's making that decision?


	PR target/68973
	* reloads.c (find_reloads_address_1): For pre/post-inc/dec
	with an invalid hard reg, reload just the reg not the entire
	pre/post-inc/dec address expression.

Hmm, you're patching tricky code. I'm not sure yet whether this is right or not. More reload dumps might help if you have them; I'll Cc myself on the PR.

My gut feeling is that we want to reload the inner reg before entering this block of code, with a new test for SECONDARY_MEMORY_NEEDED alongside the existing block that already sets reloaded_inner_of_autoinc.


Bernd


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]