diff options
author | James Greenhalgh <james.greenhalgh@arm.com> | 2014-11-01 08:13:09 +0000 |
---|---|---|
committer | James Greenhalgh <jgreenhalgh@gcc.gnu.org> | 2014-11-01 08:13:09 +0000 |
commit | 7cbed00872ff3e20e5183f0cb788cd0c86bdf168 (patch) | |
tree | c478897b6815f2a9b6b21d0aca73130690f0b5fd /gcc/target.h | |
parent | 240decf782968d137494cc9850fad5b310192c38 (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.h | 11 |
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 */ |