aboutsummaryrefslogtreecommitdiff
path: root/gcc/target.h
diff options
context:
space:
mode:
authorAnatoly Sokolov <aesok@post.ru>2010-06-05 21:27:51 +0400
committerAnatoly Sokolov <aesok@gcc.gnu.org>2010-06-05 21:27:51 +0400
commitf5c21ef3733d6a56ee3407ba8768abe551667f67 (patch)
tree5acbb363779f56a111143ed54e7f8d18e54e8448 /gcc/target.h
parentda8c7675f93c3b8a955c07aee1fd7f2bd1d324fd (diff)
downloadgcc-f5c21ef3733d6a56ee3407ba8768abe551667f67.zip
gcc-f5c21ef3733d6a56ee3407ba8768abe551667f67.tar.gz
gcc-f5c21ef3733d6a56ee3407ba8768abe551667f67.tar.bz2
target.h (struct gcc_target): Add memory_move_cost field.
* 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. From-SVN: r160323
Diffstat (limited to 'gcc/target.h')
-rw-r--r--gcc/target.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/target.h b/gcc/target.h
index c8be2b5..4e2bf98 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