aboutsummaryrefslogtreecommitdiff
path: root/gcc/target.h
diff options
context:
space:
mode:
authorAnatoly Sokolov <aesok@post.ru>2010-06-27 15:40:42 +0400
committerAnatoly Sokolov <aesok@gcc.gnu.org>2010-06-27 15:40:42 +0400
commitde8f4b07c03ffb0db0562f462be066684af2f0b7 (patch)
tree851a7e8964d45a63937f1e17d192d74a42b4e143 /gcc/target.h
parent533e50f6ac9ee21fe5bcb223e8d6693466836d80 (diff)
downloadgcc-de8f4b07c03ffb0db0562f462be066684af2f0b7.zip
gcc-de8f4b07c03ffb0db0562f462be066684af2f0b7.tar.gz
gcc-de8f4b07c03ffb0db0562f462be066684af2f0b7.tar.bz2
target.h (struct gcc_target): Add register_move_cost field.
* target.h (struct gcc_target): Add register_move_cost field. * target-def.h (TARGET_REGISTER_MOVE_COST): New. (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST. * targhooks.c (default_register_move_cost): New function. * targhooks.h (default_register_move_cost): Declare function. * defaults.h (REGISTER_MOVE_COST): Delete. * ira-int.h (ira_register_move_cost): Update comment. * ira.c: (ira_register_move_cost): Update comment. * reload.h (register_move_cost): Declare. * reginfo.c (register_move_cost): New function. (move_cost): Update comment. (init_move_cost, memory_move_secondary_cost): Replace REGISTER_MOVE_COST with register_move_cost. * postreload.c (reload_cse_simplify_set): (Ditto.). * reload.c (find_valid_class, find_reloads): (Ditto.). * reload1.c (choose_reload_regs): (Ditto.). * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New. (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation. * doc/md.texi (can_create_pseudo_p): Update 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. (TARGET_MEMORY_MOVE_COST): Define. * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro. * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove. * config/ia64/ia64.h (ia64_memory_move_cost): Make static. (TARGET_MEMORY_MOVE_COST): Define. From-SVN: r161470
Diffstat (limited to 'gcc/target.h')
-rw-r--r--gcc/target.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/target.h b/gcc/target.h
index 2f181eb..5a857d7 100644
--- a/gcc/target.h
+++ b/gcc/target.h
@@ -812,6 +812,11 @@ struct gcc_target
for further details. */
bool (* vector_mode_supported_p) (enum machine_mode mode);
+ /* Compute cost of moving data from a register of class FROM to one of
+ TO, using MODE. */
+ int (* register_move_cost) (enum machine_mode, enum reg_class,
+ enum reg_class);
+
/* Compute cost of moving registers to/from memory. */
int (* memory_move_cost) (enum machine_mode, enum reg_class, bool);