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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

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

--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #5)
> Vectorization can only maintain one of the locations:
> 
> -  [t.ii:9:8] _6 = foo.ptr;
> -  [t.ii:9:8] [t.ii:9:8] D.2488.ptr = _6;
> +  [t.ii:9:8] vect__6.9_12 = MEM <vector(2) int> [(int *)&foo];
>    [t.ii:4:5] MEM[(struct shared_count *)[t.ii:20:3] &D.2488 + 4B] ={v}
> {CLOBBER};
> -  [t.ii:4:13] _7 = [t.ii:4:13] MEM[(struct shared_count &)[t.ii:20:11] &foo
> + 4].pi;
> -  [t.ii:4:7] [t.ii:4:7] MEM[(struct shared_count *)[t.ii:20:3] &D.2488 +
> 4B].pi = _7;
> +  [t.ii:9:8] MEM <vector(2) int> [(int *)&D.2488] = vect__6.9_12;
> 
> so we combine the reads at t.ii:9:8 and t.ii:4:7 (that's the uninitialized
> one)
> into a vector read at t.ii:9:8.  I don't see how GCCs IL allows us to do
> better.

Well, if DWARF6 agrees on some way how to debug vectorized code, maybe we'll
need to figure out a way how to encode multiple locations.

Reply via email to