https://gcc.gnu.org/g:e6e41b68fd805ab126895a20bb9670442b198f62
commit r15-488-ge6e41b68fd805ab126895a20bb9670442b198f62 Author: Christoph Müllner <christoph.muell...@vrull.eu> Date: Tue May 14 09:19:13 2024 -0600 [1/3] expr: Export clear_by_pieces() Make clear_by_pieces() available to other parts of the compiler, similar to store_by_pieces(). gcc/ChangeLog: * expr.cc (clear_by_pieces): Remove static from clear_by_pieces. * expr.h (clear_by_pieces): Add prototype for clear_by_pieces. Diff: --- gcc/expr.cc | 6 +----- gcc/expr.h | 5 +++++ 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/gcc/expr.cc b/gcc/expr.cc index 9f66d4794459..1baa39b98eba 100644 --- a/gcc/expr.cc +++ b/gcc/expr.cc @@ -85,7 +85,6 @@ static void emit_block_move_via_sized_loop (rtx, rtx, rtx, unsigned, unsigned); static void emit_block_move_via_oriented_loop (rtx, rtx, rtx, unsigned, unsigned); static rtx emit_block_cmp_via_loop (rtx, rtx, rtx, tree, rtx, bool, unsigned, unsigned); -static void clear_by_pieces (rtx, unsigned HOST_WIDE_INT, unsigned int); static rtx_insn *compress_float_constant (rtx, rtx); static rtx get_subtarget (rtx); static rtx store_field (rtx, poly_int64, poly_int64, poly_uint64, poly_uint64, @@ -1840,10 +1839,7 @@ store_by_pieces (rtx to, unsigned HOST_WIDE_INT len, return to; } -/* Generate several move instructions to clear LEN bytes of block TO. (A MEM - rtx with BLKmode). ALIGN is maximum alignment we can assume. */ - -static void +void clear_by_pieces (rtx to, unsigned HOST_WIDE_INT len, unsigned int align) { if (len == 0) diff --git a/gcc/expr.h b/gcc/expr.h index 64956f630297..751815841083 100644 --- a/gcc/expr.h +++ b/gcc/expr.h @@ -245,6 +245,11 @@ extern bool can_store_by_pieces (unsigned HOST_WIDE_INT, extern rtx store_by_pieces (rtx, unsigned HOST_WIDE_INT, by_pieces_constfn, void *, unsigned int, bool, memop_ret); +/* Generate several move instructions to clear LEN bytes of block TO. (A MEM + rtx with BLKmode). ALIGN is maximum alignment we can assume. */ + +extern void clear_by_pieces (rtx, unsigned HOST_WIDE_INT, unsigned int); + /* If can_store_by_pieces passes for worst-case values near MAX_LEN, call store_by_pieces within conditionals so as to handle variable LEN efficiently, storing VAL, if non-NULL_RTX, or valc instead. */