aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtlanal.c
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2017-10-09 21:44:13 +0200
committerSegher Boessenkool <segher@gcc.gnu.org>2017-10-09 21:44:13 +0200
commitd09e78e89037b5096e55b04effa714fc40e19a8c (patch)
treee24c9b1f71385f43633cf5e52abe5626c37114b0 /gcc/rtlanal.c
parent90e491a7739dc2ae9a5b92945e4f0e48a3a91e39 (diff)
downloadgcc-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/rtlanal.c')
-rw-r--r--gcc/rtlanal.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c
index b28325e..f01eab5 100644
--- a/gcc/rtlanal.c
+++ b/gcc/rtlanal.c
@@ -5269,11 +5269,11 @@ num_sign_bit_copies1 (const_rtx x, scalar_int_mode mode, const_rtx known_x,
? 1 : bitwidth - floor_log2 (nonzero) - 1;
}
-/* Calculate the rtx_cost of a single instruction. A return value of
+/* Calculate the rtx_cost of a single instruction pattern. A return value of
zero indicates an instruction pattern without a known cost. */
int
-insn_rtx_cost (rtx pat, bool speed)
+pattern_cost (rtx pat, bool speed)
{
int i, cost;
rtx set;
@@ -5323,6 +5323,15 @@ insn_rtx_cost (rtx pat, bool speed)
return cost > 0 ? cost : COSTS_N_INSNS (1);
}
+/* Calculate the cost of a single instruction. A return value of zero
+ indicates an instruction pattern without a known cost. */
+
+int
+insn_cost (rtx_insn *insn, bool speed)
+{
+ return pattern_cost (PATTERN (insn), speed);
+}
+
/* Returns estimate on cost of computing SEQ. */
unsigned