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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rsandifo at gcc dot gnu.org

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
What's the semantic of .LEN_STORE?  I can't find documentation for this :/ 
There's docs for the len_store optab but how 'mask' and 'bias' relate to its
operands isn't documented anywhere.  If the cited .LEN_STORE is a full store
then sure - folding to a plain MEM = value; is preferred.  Otherwise I wouldn't
split it up.  Handling of partial stores in VN is possible, the "easiest" way
is probably via vn_reference_lookup_3 and its support for partial defs
(for constant masks a store may then be composed of multiple partial defs
and "masked" parts that are required will be taken from earlier stores).

Maybe handling of all partial store IFNs can be commonized somehow.

Alias analysis in general (ref_maybe_used_by_stmt_p, call_may_clobber_ref_p,
stmt_kills_ref_p) also miss handling of them - possibly some more general
helpers can facilitate that.

Reply via email to