diff options
author | Segher Boessenkool <segher@kernel.crashing.org> | 2017-10-09 21:44:13 +0200 |
---|---|---|
committer | Segher Boessenkool <segher@gcc.gnu.org> | 2017-10-09 21:44:13 +0200 |
commit | d09e78e89037b5096e55b04effa714fc40e19a8c (patch) | |
tree | e24c9b1f71385f43633cf5e52abe5626c37114b0 /gcc/combine.c | |
parent | 90e491a7739dc2ae9a5b92945e4f0e48a3a91e39 (diff) | |
download | gcc-d09e78e89037b5096e55b04effa714fc40e19a8c.zip gcc-d09e78e89037b5096e55b04effa714fc40e19a8c.tar.gz gcc-d09e78e89037b5096e55b04effa714fc40e19a8c.tar.bz2 |
Replace insn_rtx_cost with insn_cost and pattern_cost
This replaces insn_rtx_cost with insn_cost if an insn is readily
available, and with pattern_cost otherwise.
* cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with
insn_cost.
* combine.c (uid_insn_cost): Adjust comment.
(combine_validate_cost): Adjust comment. Use pattern_cost instead
of insn_rtx_cost
(combine_instructions): Use insn_cost instead of insn_rtx_cost.
* dse.c (find_shift_sequence): Ditto.
* ifcvt.c (cheap_bb_rtx_cost_p): Ditto.
(bb_valid_for_noce_process_p): Use pattern_cost.
* rtl.h (insn_rtx_cost): Delete.
(pattern_cost): New prototype.
(insn_cost): New prototype.
* rtlanal.c (insn_rtx_cost): Rename to...
(pattern_cost): ... this.
(insn_cost): New.
From-SVN: r253560
Diffstat (limited to 'gcc/combine.c')
-rw-r--r-- | gcc/combine.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/gcc/combine.c b/gcc/combine.c index 400cef3..5f1cbca 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -311,7 +311,7 @@ static bool optimize_this_for_speed_p; static int max_uid_known; -/* The following array records the insn_rtx_cost for every insn +/* The following array records the insn_cost for every insn in the instruction stream. */ static int *uid_insn_cost; @@ -841,7 +841,7 @@ do_SUBST_LINK (struct insn_link **into, struct insn_link *newval) #define SUBST_LINK(oldval, newval) do_SUBST_LINK (&oldval, newval) /* Subroutine of try_combine. Determine whether the replacement patterns - NEWPAT, NEWI2PAT and NEWOTHERPAT are cheaper according to insn_rtx_cost + NEWPAT, NEWI2PAT and NEWOTHERPAT are cheaper according to insn_cost than the original sequence I0, I1, I2, I3 and undobuf.other_insn. Note that I0, I1 and/or NEWI2PAT may be NULL_RTX. Similarly, NEWOTHERPAT and undobuf.other_insn may also both be NULL_RTX. Return false if the cost @@ -888,11 +888,11 @@ combine_validate_cost (rtx_insn *i0, rtx_insn *i1, rtx_insn *i2, rtx_insn *i3, old_cost -= i1_cost; - /* Calculate the replacement insn_rtx_costs. */ - new_i3_cost = insn_rtx_cost (newpat, optimize_this_for_speed_p); + /* Calculate the replacement pattern_costs. */ + new_i3_cost = pattern_cost (newpat, optimize_this_for_speed_p); if (newi2pat) { - new_i2_cost = insn_rtx_cost (newi2pat, optimize_this_for_speed_p); + new_i2_cost = pattern_cost (newi2pat, optimize_this_for_speed_p); new_cost = (new_i2_cost > 0 && new_i3_cost > 0) ? new_i2_cost + new_i3_cost : 0; } @@ -907,7 +907,7 @@ combine_validate_cost (rtx_insn *i0, rtx_insn *i1, rtx_insn *i2, rtx_insn *i3, int old_other_cost, new_other_cost; old_other_cost = INSN_COST (undobuf.other_insn); - new_other_cost = insn_rtx_cost (newotherpat, optimize_this_for_speed_p); + new_other_cost = pattern_cost (newotherpat, optimize_this_for_speed_p); if (old_other_cost > 0 && new_other_cost > 0) { old_cost += old_other_cost; @@ -1208,10 +1208,9 @@ combine_instructions (rtx_insn *f, unsigned int nregs) set_nonzero_bits_and_sign_copies (XEXP (links, 0), NULL_RTX, insn); - /* Record the current insn_rtx_cost of this instruction. */ + /* Record the current insn_cost of this instruction. */ if (NONJUMP_INSN_P (insn)) - INSN_COST (insn) = insn_rtx_cost (PATTERN (insn), - optimize_this_for_speed_p); + INSN_COST (insn) = insn_cost (insn, optimize_this_for_speed_p); if (dump_file) { fprintf (dump_file, "insn_cost %d for ", INSN_COST (insn)); |