summaryrefslogtreecommitdiff
path: root/gcc/target.h
diff options
context:
space:
mode:
authorJames Greenhalgh <james.greenhalgh@arm.com>2014-11-01 08:13:09 +0000
committerJames Greenhalgh <jgreenhalgh@gcc.gnu.org>2014-11-01 08:13:09 +0000
commit7cbed00872ff3e20e5183f0cb788cd0c86bdf168 (patch)
treec478897b6815f2a9b6b21d0aca73130690f0b5fd /gcc/target.h
parent240decf782968d137494cc9850fad5b310192c38 (diff)
[Patch 1/7] Hookize *_BY_PIECES_P
gcc/ * target.def (use_by_pieces_infrastructure_p): New. * doc/tm.texi.in (MOVE_BY_PIECES_P): Describe that this macro is deprecated. (STORE_BY_PIECES_P): Likewise. (CLEAR_BY_PIECES_P): Likewise. (SET_BY_PIECES_P): Likewise. (TARGET_MOVE_BY_PIECES_PROFITABLE_P): Add hook. * doc/tm.texi: Regenerate. * expr.c (MOVE_BY_PIECES_P): Rewrite in terms of TARGET_USE_BY_PIECES_INFRASTRUCTURE_P. (STORE_BY_PIECES_P): Likewise. (CLEAR_BY_PIECES_P): Likewise. (SET_BY_PIECES_P): Likewise. (STORE_MAX_PIECES): Move to... * defaults.h (STORE_MAX_PIECES): ...here. * targhooks.c (get_move_ratio): New. (default_use_by_pieces_infrastructure_p): Likewise. * targhooks.h (default_use_by_pieces_infrastructure_p): New. * target.h (by_pieces_operation): New. From-SVN: r216996
Diffstat (limited to 'gcc/target.h')
-rw-r--r--gcc/target.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/target.h b/gcc/target.h
index 7be94b82558..40d784164b8 100644
--- a/gcc/target.h
+++ b/gcc/target.h
@@ -80,6 +80,17 @@ enum print_switch_type
SWITCH_TYPE_LINE_END /* Please emit a line terminator. */
};
+/* Types of memory operation understood by the "by_pieces" infrastructure.
+ Used by the TARGET_USE_BY_PIECES_INFRASTRUCTURE_P target hook. */
+
+enum by_pieces_operation
+{
+ CLEAR_BY_PIECES,
+ MOVE_BY_PIECES,
+ SET_BY_PIECES,
+ STORE_BY_PIECES
+};
+
typedef int (* print_switch_fn_type) (print_switch_type, const char *);
/* An example implementation for ELF targets. Defined in varasm.c */