https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121831

--- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
store_constructor simply doesn't have RAW_DATA_CST support, that can be added.

What worries me more is that expand_constructor doesn't have some upper size
bound on the optimization.  We punt if we can't can_move_by_pieces and exp is
not mostly zeros,
but if exp is mostly zeros, even if it is say 10GB of non-zeros and 30GB of
zeros, we still could expand it by clearing 40GB and then trying to store
10billion INTEGER_CSTs one by one into the MEM.  mostly_zeros_p still means
just that 3/4 or more of it are zero bytes, the non-zero byte chunks can be
huge.

Reply via email to