Commit ef61d1ab by Andreas Krebbel Committed by Vladimir Makarov

re PR rtl-optimization/83147 (LRA inheritance undo on multiple sets problem)

2018-01-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	PR rtl-optimization/83147
	* lra-constraints.c (remove_inheritance_pseudos): Use
	lra_substitute_pseudo_within_insn.

From-SVN: r256902
parent dba99244
2018-01-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
PR rtl-optimization/83147
* lra-constraints.c (remove_inheritance_pseudos): Use
lra_substitute_pseudo_within_insn.
2018-01-19 Tom de Vries <tom@codesourcery.com>
Cesar Philippidis <cesar@codesourcery.com>
......
......@@ -6719,10 +6719,12 @@ remove_inheritance_pseudos (bitmap remove_pseudos)
{
lra_assert (GET_MODE (SET_SRC (prev_set))
== GET_MODE (regno_reg_rtx[sregno]));
if (GET_CODE (SET_SRC (set)) == SUBREG)
SUBREG_REG (SET_SRC (set)) = SET_SRC (prev_set);
else
SET_SRC (set) = SET_SRC (prev_set);
/* Although we have a single set, the insn can
contain more one sregno register occurrence
as a source. Change all occurrences. */
lra_substitute_pseudo_within_insn (curr_insn, sregno,
SET_SRC (prev_set),
false);
/* As we are finishing with processing the insn
here, check the destination too as it might
inheritance pseudo for another pseudo. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment