diff options
author | aesok <aesok@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-06-05 17:27:51 +0000 |
---|---|---|
committer | aesok <aesok@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-06-05 17:27:51 +0000 |
commit | 251a613eb0d8871e5d961286b66ce27f1d5ab58b (patch) | |
tree | 5acbb363779f56a111143ed54e7f8d18e54e8448 /gcc/target.h | |
parent | 4c170941ee7ac668687d0df2b619be6fc9646c62 (diff) | |
download | gcc-251a613eb0d8871e5d961286b66ce27f1d5ab58b.tar.gz |
* target.h (struct gcc_target): Add memory_move_cost field.
* target-def.h (TARGET_MEMORY_MOVE_COST): New.
(TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
* targhooks.c (default_memory_move_cost): New function.
* targhooks.h (default_memory_move_cost): Declare function.
* reload.h (memory_move_cost): Declare.
(memory_move_secondary_cost): Change type of 'in' argument to bool.
* reginfo.c (memory_move_cost): New function.
(memory_move_secondary_cost): Change type of 'in' argument to bool.
* ira.h (ira_memory_move_cost): Update comment.
* ira.c: (ira_memory_move_cost): Update comment.
(setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
with memory_move_cost.
* postreload.c (reload_cse_simplify_set): (Ditto.).
* reload1.c (choose_reload_regs): (Ditto.).
* doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
(MEMORY_MOVE_COST): Revise documentation.
* config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
* config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
* config/i386/i386.h (ix86_memory_move_cost): Make static. Change
type of 'in' argument to bool.
(TARGET_MEMORY_MOVE_COST): Define.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160323 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/target.h')
-rw-r--r-- | gcc/target.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/target.h b/gcc/target.h index c8be2b5a46c..4e2bf984cb1 100644 --- a/gcc/target.h +++ b/gcc/target.h @@ -791,6 +791,9 @@ struct gcc_target for further details. */ bool (* vector_mode_supported_p) (enum machine_mode mode); + /* Compute cost of moving registers to/from memory. */ + int (* memory_move_cost) (enum machine_mode, enum reg_class, bool); + /* True for MODE if the target expects that registers in this mode will be allocated to registers in a small register class. The compiler is allowed to use registers explicitly used in the rtl as spill registers |