[middle-end] Add machine_mode to address_cost target hook

Oleg Endo oleg.endo@t-online.de
Tue Sep 4 07:53:00 GMT 2012


On Mon, 2012-09-03 at 01:58 +0200, Oleg Endo wrote:
> OKOK -- I'll do it :)
> (within the next couple of days)
> 

And so I did.  Attached is an updated patch that adds the address space
parameter to the address_cost function.  I hope that this change does
not reset the ACKs so far:

[x] target-independent bits
[ ] alpha     [ ] arm       [ ] avr         [ ] bfin
[ ] cr16      [ ] cris      [ ] epiphany    [ ] i386
[ ] ia64      [ ] iq2000    [ ] lm32        [ ] m32c
[ ] m32r      [ ] mcore     [ ] mep         [x] microblaze
[x] mips      [ ] mmix      [x] mn10300     [ ] pa
[ ] rs6000    [ ] rx        [ ] s390        [ ] score
[x] sh        [ ] sparc     [ ] spu         [ ] stormy16
[ ] v850      [ ] vax       [ ] xtensa

Tested with 'make all-gcc' on SH xgcc and i386 native build.
No functional changes, except on MIPS, as requested by Richard
Sandiford.

Cheers,
Oleg

ChangeLog:

	* hooks.c (hook_int_rtx_mode_as_bool_0): New function.
	* hooks.h (hook_int_rtx_mode_as_bool_0): Declare it.
	* output.h (default_address_cost): Add machine_mode 
	and address space arguments.
	* target.def (address_cost): Likewise.
	* rtlanal.c (address_cost): Pass mode and address space to
	target hook.
	(default_address_cost): Add unnamed machine_mode and address 
	space arguments.
	* doc/tm.texi: Regenerate.
	* config/alpha/alpha.c (TARGET_ADDRESS_COST): Use 
	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
	* config/arm/arm.c (arm_address_cost): Add machine_mode 
	and address space arguments.
	* config/avr/avr.c (avr_address_cost): Likewise.
	* config/bfin/bfin.c (bfin_address_cost): Likewise.
	* config/cr16/cr16.c (cr16_address_cost): Likewise.
	* config/cris/cris.c (cris_address_cost): Likewise.
	* config/epiphany/epiphany.c (epiphany_address_cost): Likewise.
	* config/i386/i386.c (ix86_address_cost): Likewise.
	* config/ia64/ia64.c (TARGET_ADDRESS_COST): Use 
	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
	* config/iq2000/iq2000.c (iq2000_address_cost): Add 
        machine_mode and address space arguments.  Pass them on in
	recursive invocation.
	* config/lm32/lm32.c (TARGET_ADDRESS_COST): Use 
	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
	* config/m32c/m32c.c (m32c_address_cost): Add machine_mode 
	and address space arguments.
	* config/m32r/m32r.c (TARGET_ADDRESS_COST): Use 
	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
	* config/mcore/mcore.c (TARGET_ADDRESS_COST): Likewise.
	* config/mep/mep.c (mep_address_cost): Add machine_mode 
	and address space arguments.
	* config/microblaze/microblaze.c (microblaze_address_cost): 
	Likewise.
	* config/mips/mips.c (mips_address_cost): Likewise.
	* config/mmix/mmix.c (TARGET_ADDRESS_COST): Use 
	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
	* config/mn10300/mn10300.c (mn10300_address_cost): Add
        machine_mode and address space arguments.  Use GET_MODE (x) and 
	ADDR_SPACE_GENERIC in recursive invocation.
	* config/pa/pa.c (hppa_address_cost): Add machine_mode and 
	address space arguments.
	* config/rs6000/rs6000.c (rs6000_debug_address_cost): Likewise.
	(TARGET_ADDRESS_COST): Use hook_int_rtx_mode_as_bool_0 instead 
	of hook_int_rtx_bool_0.
        * config/rx/rx.c (rx_address_cost): Add machine_mode and 
	address space arguments.
	* config/s390/s390.c (s390_address_cost): Likewise.
	* config/score/score-protos.h (score_address_cost): Likewise.
	* config/score/score.c (score_address_cost): Likewise.
	* config/sh/sh.c (sh_address_cost): Likewise.
	* config/sparc/sparc.c (TARGET_ADDRESS_COST): Use 
	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
	* config/spu/spu.c (TARGET_ADDRESS_COST): Likewise.
	* config/stormy16/stormy16.c (xstormy16_address_cost): Add 
	machine_mode and address space arguments.
	* config/v850/v850.c (TARGET_ADDRESS_COST): Use 
	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
	* config/vax/vax.c (vax_address_cost): Add machine_mode 
	and address space arguments.
	* config/xtensa/xtensa (TARGET_ADDRESS_COST): Use 
	hook_int_rtx_mode_as_bool_0 instead of hook_int_rtx_bool_0.
        
-------------- next part --------------
A non-text attachment was scrubbed...
Name: address_cost_mode2.patch
Type: text/x-patch
Size: 24816 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20120904/f1c01c62/attachment.bin>


More information about the Gcc-patches mailing list