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] |
On 11/10/2015 11:33 PM, Robert Suchanek wrote:
The reason behind the failures is that the terminated_this_insn had a different number of consecutive registers (and mode) to the input operand in a move currently being considered for tying. In the fix, I allow tying only if there is matching number of NREGS. Bernd, do you think that this check would be sufficient and safe? I'm not sure what would be better: check the mode, nregs plus perhaps consider tying only if nregs == 1.
Hmm, but shouldn't the regno still be the same? Or is this a case where we have a multi-word chain like ax/dx and then something like a "set bx, dx" involving only a part of it, but the entire chain dies?
I guess this is ok to stop the failures for now, but you may want to move the check to the point where we set terminated_this_insn. Also, as I pointed out earlier, clearing terminated_this_insn should probably happen earlier.
Bernd
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |