regrename: Use PC instead of CC0 to hide operands

The regrename pass temporarily changes some operand RTL to CC0 so that
note_stores and scan_rtx don't see those operands.  CC0 is deprecated
and we want to remove it, so we need to use something else here.
PC fits the bill fine.


	* regrename.c (hide_operands): Use pc_rtx instead of cc0_rtx.
	(build_def_use): Use PC instead of CC0 in a comment.

From-SVN: r276401
This commit is contained in:
Segher Boessenkool 2019-10-01 13:12:03 +02:00 committed by Segher Boessenkool
parent 4d07a2ece6
commit 58e721d255
2 changed files with 9 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2019-10-01 Segher Boessenkool <segher@kernel.crashing.org>
* regrename.c (hide_operands): Use pc_rtx instead of cc0_rtx.
(build_def_use): Use PC instead of CC0 in a comment.
2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
* rtl.def (CLOBBER_HIGH): Delete.

View File

@ -1517,7 +1517,7 @@ scan_rtx (rtx_insn *insn, rtx *loc, enum reg_class cl, enum scan_actions action,
}
/* Hide operands of the current insn (of which there are N_OPS) by
substituting cc0 for them.
substituting pc for them.
Previous values are stored in the OLD_OPERANDS and OLD_DUPS.
For every bit set in DO_NOT_HIDE, we leave the operand alone.
If INOUT_AND_EC_ONLY is set, we only do this for OP_INOUT type operands
@ -1541,7 +1541,7 @@ hide_operands (int n_ops, rtx *old_operands, rtx *old_dups,
continue;
if (!inout_and_ec_only || recog_data.operand_type[i] == OP_INOUT
|| op_alt[i].earlyclobber)
*recog_data.operand_loc[i] = cc0_rtx;
*recog_data.operand_loc[i] = pc_rtx;
}
for (i = 0; i < recog_data.n_dups; i++)
{
@ -1551,7 +1551,7 @@ hide_operands (int n_ops, rtx *old_operands, rtx *old_dups,
continue;
if (!inout_and_ec_only || recog_data.operand_type[opn] == OP_INOUT
|| op_alt[opn].earlyclobber)
*recog_data.dup_loc[i] = cc0_rtx;
*recog_data.dup_loc[i] = pc_rtx;
}
}
@ -1754,7 +1754,7 @@ build_def_use (basic_block bb)
/* Step 2: Mark chains for which we have reads outside operands
as unrenamable.
We do this by munging all operands into CC0, and closing
We do this by munging all operands into PC, and closing
everything remaining. */
hide_operands (n_ops, old_operands, old_dups, untracked_operands,