Commit 394b24ea by Robert Suchanek Committed by Robert Suchanek

Tighten up checks when tying chains.

gcc/
	* regname.c (scan_rtx_reg): Check the matching number of consecutive
	registers when tying chains.
	(build_def_use): Move terminated_this_insn earlier in the function.

From-SVN: r230149
parent 6eef39f1
2015-11-11 Robert Suchanek <robert.suchanek@imgtec.com>
* regname.c (scan_rtx_reg): Check the matching number of consecutive
registers when tying chains.
(build_def_use): Move terminated_this_insn earlier in the function.
2015-11-10 Mike Frysinger <vapier@gentoo.org> 2015-11-10 Mike Frysinger <vapier@gentoo.org>
* configure.ac: Use = with test and not ==. * configure.ac: Use = with test and not ==.
...@@ -1068,7 +1068,9 @@ scan_rtx_reg (rtx_insn *insn, rtx *loc, enum reg_class cl, enum scan_actions act ...@@ -1068,7 +1068,9 @@ scan_rtx_reg (rtx_insn *insn, rtx *loc, enum reg_class cl, enum scan_actions act
&& GET_CODE (pat) == SET && GET_CODE (pat) == SET
&& GET_CODE (SET_DEST (pat)) == REG && GET_CODE (SET_DEST (pat)) == REG
&& GET_CODE (SET_SRC (pat)) == REG && GET_CODE (SET_SRC (pat)) == REG
&& terminated_this_insn) && terminated_this_insn
&& terminated_this_insn->nregs
== REG_NREGS (recog_data.operand[1]))
{ {
gcc_assert (terminated_this_insn->regno gcc_assert (terminated_this_insn->regno
== REGNO (recog_data.operand[1])); == REGNO (recog_data.operand[1]));
...@@ -1593,6 +1595,7 @@ build_def_use (basic_block bb) ...@@ -1593,6 +1595,7 @@ build_def_use (basic_block bb)
enum rtx_code set_code = SET; enum rtx_code set_code = SET;
enum rtx_code clobber_code = CLOBBER; enum rtx_code clobber_code = CLOBBER;
insn_rr_info *insn_info = NULL; insn_rr_info *insn_info = NULL;
terminated_this_insn = NULL;
/* Process the insn, determining its effect on the def-use /* Process the insn, determining its effect on the def-use
chains and live hard registers. We perform the following chains and live hard registers. We perform the following
...@@ -1749,8 +1752,6 @@ build_def_use (basic_block bb) ...@@ -1749,8 +1752,6 @@ build_def_use (basic_block bb)
scan_rtx (insn, &XEXP (note, 0), ALL_REGS, mark_read, scan_rtx (insn, &XEXP (note, 0), ALL_REGS, mark_read,
OP_INOUT); OP_INOUT);
terminated_this_insn = NULL;
/* Step 4: Close chains for registers that die here, unless /* Step 4: Close chains for registers that die here, unless
the register is mentioned in a REG_UNUSED note. In that the register is mentioned in a REG_UNUSED note. In that
case we keep the chain open until step #7 below to ensure case we keep the chain open until step #7 below to ensure
......
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