[PATCH] Allow global structures to be vectorized

Renato Golin renato.golin at linaro.org
Wed Feb 6 08:17:08 PST 2013


Hi all,

Far from perfect, the patch adds an extra check on the offsets. I may not
be using the right containers, and the static function findGEPOperator() is
ill-placed, but that's the basic idea behind checking for GEPs. Any
comments are really appreciated.

Another thing I'd like to ask is about the vector size.

+  // TODO: Use vector size for further conflict detection?

Should I investigate if the offsets point to a reasonable distance in
memory, given the vector size?

If the write is on P and the read is on P+(2 x int) and the vector size is
(4 x int), they do alias, even though the GEP is not on the same element.

I also may have to check that the address space of both pointers is the
same, and possibly add this to the ValueOffsetMap container... or e may
assume that address spaces will never overlap on reasonable vector sizes
(ie, they're not contiguous on at least 1 vector distance).

cheers,
--renato
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130206/6b5f81ac/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: global_vectorize.patch
Type: application/octet-stream
Size: 5239 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130206/6b5f81ac/attachment.obj>


More information about the llvm-commits mailing list