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:
parent
4d07a2ece6
commit
58e721d255
|
@ -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>
|
2019-10-01 Richard Sandiford <richard.sandiford@arm.com>
|
||||||
|
|
||||||
* rtl.def (CLOBBER_HIGH): Delete.
|
* rtl.def (CLOBBER_HIGH): Delete.
|
||||||
|
|
|
@ -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
|
/* 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.
|
Previous values are stored in the OLD_OPERANDS and OLD_DUPS.
|
||||||
For every bit set in DO_NOT_HIDE, we leave the operand alone.
|
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
|
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;
|
continue;
|
||||||
if (!inout_and_ec_only || recog_data.operand_type[i] == OP_INOUT
|
if (!inout_and_ec_only || recog_data.operand_type[i] == OP_INOUT
|
||||||
|| op_alt[i].earlyclobber)
|
|| 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++)
|
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;
|
continue;
|
||||||
if (!inout_and_ec_only || recog_data.operand_type[opn] == OP_INOUT
|
if (!inout_and_ec_only || recog_data.operand_type[opn] == OP_INOUT
|
||||||
|| op_alt[opn].earlyclobber)
|
|| 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
|
/* Step 2: Mark chains for which we have reads outside operands
|
||||||
as unrenamable.
|
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. */
|
everything remaining. */
|
||||||
|
|
||||||
hide_operands (n_ops, old_operands, old_dups, untracked_operands,
|
hide_operands (n_ops, old_operands, old_dups, untracked_operands,
|
||||||
|
|
Loading…
Reference in New Issue