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

--- Comment #27 from rguenther at suse dot de <rguenther at suse dot de> ---
On Mon, 17 Feb 2020, jakub at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93582
> 
> --- Comment #26 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
> Created attachment 47863
>   --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47863&action=edit
> gcc10-pr93582-2-wip.patch
> 
> WIP on the merging from multiple stores.  BIG_ENDIAN still not implemented.

Looks reasonable.  Btw, the shift-and-merge into existing buffer
pieces probably also belong to fold-const.c alongside
native_encode + the shift helpers.  I wonder how much we can
"micro-optimize" there by encoding and shifting in place of the
destination buffer and saving the first/last byte from it to
fixup the bits we have to preserve? (it looks like you already
do parts of that but still have to copy)

As an intermediate step I'd have simply changed the bytes to 
bit quantities and placed the byte-granularity restriction into
push_partial_def.

Reply via email to