diff options
author | Richard Sandiford <richard.sandiford@linaro.org> | 2011-08-18 12:37:53 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2011-08-18 12:37:53 +0000 |
commit | 68f932c4432b9b806d58781aa56ad7b3ba5e82f9 (patch) | |
tree | 32eb4ba0348b5f9ebbe8e13117af0c1d2e9f4d87 /gcc/doc | |
parent | 5e8f01f434e547d21e6be3f44b2f5d9090fdc9db (diff) | |
download | gcc-68f932c4432b9b806d58781aa56ad7b3ba5e82f9.zip gcc-68f932c4432b9b806d58781aa56ad7b3ba5e82f9.tar.gz gcc-68f932c4432b9b806d58781aa56ad7b3ba5e82f9.tar.bz2 |
tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
gcc/
* doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
* doc/tm.texi: Regenerate.
* target.def (rtx_costs): Add an opno parameter.
* hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
(hook_bool_rtx_int_int_int_intp_bool_false): ...this.
* hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
(hook_bool_rtx_int_int_int_intp_bool_false): ...this.
* cse.c (COST_IN): Add an opno parameter.
(notreg_cost): Likewise. Update call to rtx_cost.
(COST, fold_rtx): Update accordingly.
* dojump.c (prefer_and_bit_test): Update call to rtx_cost.
* expmed.c (emit_store_flag): Likewise.
* optabs.c (avoid_expensive_constant): Add an opno parameter.
Update call to rtx_cost.
(expand_binop_directly, expand_binop): Likewise.
(expand_twoval_binop, prepare_cmp_insn): Likewise.
* rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
(set_src_cost, get_full_set_src_cost): Update accordingly.
* rtlanal.c (rtx_cost): Add an opno parameter. Update call
to target hook.
(get_full_rtx_cost): Add an opno paramter. Update calls to rtx_cost.
(default_adress_cost): Update calls to rtx_cost.
* config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
(arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
(arm_rtx_costs): Add an opno parameter.
* config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
adjust any recursive rtx-cost calls.
* config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
* config/bfin/bfin.c (bfin_rtx_costs): Likewise.
* config/c6x/c6x.c (c6x_rtx_costs): Likewise.
* config/cris/cris.c (cris_rtx_costs): Likewise.
* config/frv/frv.c (frv_rtx_costs): Likewise.
* config/h8300/h8300.c (h8300_rtx_costs): Likewise.
* config/i386/i386.c (ix86_rtx_costs): Likewise.
* config/ia64/ia64.c (ia64_rtx_costs): Likewise.
* config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
* config/lm32/lm32.c (lm32_rtx_costs): Likewise.
* config/m32c/m32c.c (m32c_rtx_costs): Likewise.
* config/m32r/m32r.c (m32r_rtx_costs): Likewise.
* config/m68k/m68k.c (m68k_rtx_costs): Likewise.
* config/mcore/mcore.c (mcore_rtx_costs): Likewise.
* config/mep/mep.c (mep_rtx_cost): Likewise.
* config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
* config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
(mips_zero_extend_cost): Add an opno parameter.
* config/mmix/mmix.c (mmix_rtx_costs): Likewise.
* config/mn10300/mn10300.c (mn10300_address_cost): Update call
to rtx_cost.
(mn10300_rtx_costs): Add an opno parameter and adjust any recursive
rtx-cost calls.
* config/pa/pa.c (hppa_rtx_costs): Likewise.
* config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
* config/picochip/picochip.c (picochip_rtx_costs): Likewise.
* config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
(rs6000_debug_rtx_costs): Likewise.
* config/s390/s390.c (s390_rtx_costs): Likewise.
* config/score/score-protos.h (score_rtx_costs): Likewise.
* config/score/score.c (score_rtx_costs): Likewise.
* config/sh/sh.c (andcosts): Update call to rtx_cost.
(sh_rtx_costs): Add an opno parameter.
* config/sparc/sparc.c (sparc_rtx_costs): Likewise.
* config/spu/spu.c (spu_rtx_costs): Likewise.
* config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
* config/v850/v850.c (v850_rtx_costs): Likewise.
* config/vax/vax.c (vax_rtx_costs): Likewise.
* config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
From-SVN: r177852
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/tm.texi | 15 | ||||
-rw-r--r-- | gcc/doc/tm.texi.in | 13 |
2 files changed, 19 insertions, 9 deletions
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index d383eca..832aefe 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -6415,14 +6415,19 @@ Define this macro if a non-short-circuit operation produced by @code{BRANCH_COST} is greater than or equal to the value 2. @end defmac -@deftypefn {Target Hook} bool TARGET_RTX_COSTS (rtx @var{x}, int @var{code}, int @var{outer_code}, int *@var{total}, bool @var{speed}) +@deftypefn {Target Hook} bool TARGET_RTX_COSTS (rtx @var{x}, int @var{code}, int @var{outer_code}, int @var{opno}, int *@var{total}, bool @var{speed}) This target hook describes the relative costs of RTL expressions. The cost may depend on the precise form of the expression, which is -available for examination in @var{x}, and the rtx code of the expression -in which it is contained, found in @var{outer_code}. @var{code} is the -expression code---redundant, since it can be obtained with -@code{GET_CODE (@var{x})}. +available for examination in @var{x}, and the fact that @var{x} appears +as operand @var{opno} of an expression with rtx code @var{outer_code}. +That is, the hook can assume that there is some rtx @var{y} such +that @samp{GET_CODE (@var{y}) == @var{outer_code}} and such that +either (a) @samp{XEXP (@var{y}, @var{opno}) == @var{x}} or +(b) @samp{XVEC (@var{y}, @var{opno})} contains @var{x}. + +@var{code} is @var{x}'s expression code---redundant, since it can be +obtained with @code{GET_CODE (@var{x})}. In implementing this hook, you can use the construct @code{COSTS_N_INSNS (@var{n})} to specify a cost equal to @var{n} fast diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in index 9d10844..c53cbe8 100644 --- a/gcc/doc/tm.texi.in +++ b/gcc/doc/tm.texi.in @@ -6357,10 +6357,15 @@ Define this macro if a non-short-circuit operation produced by This target hook describes the relative costs of RTL expressions. The cost may depend on the precise form of the expression, which is -available for examination in @var{x}, and the rtx code of the expression -in which it is contained, found in @var{outer_code}. @var{code} is the -expression code---redundant, since it can be obtained with -@code{GET_CODE (@var{x})}. +available for examination in @var{x}, and the fact that @var{x} appears +as operand @var{opno} of an expression with rtx code @var{outer_code}. +That is, the hook can assume that there is some rtx @var{y} such +that @samp{GET_CODE (@var{y}) == @var{outer_code}} and such that +either (a) @samp{XEXP (@var{y}, @var{opno}) == @var{x}} or +(b) @samp{XVEC (@var{y}, @var{opno})} contains @var{x}. + +@var{code} is @var{x}'s expression code---redundant, since it can be +obtained with @code{GET_CODE (@var{x})}. In implementing this hook, you can use the construct @code{COSTS_N_INSNS (@var{n})} to specify a cost equal to @var{n} fast |