[LLVMbugs] [Bug 19651] New: Vectorizer generates useless vector.memcheck block

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Sun May 4 04:45:16 PDT 2014


http://llvm.org/bugs/show_bug.cgi?id=19651

            Bug ID: 19651
           Summary: Vectorizer generates useless vector.memcheck block
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: MacOS X
            Status: NEW
          Severity: normal
          Priority: P
         Component: Loop Optimizer
          Assignee: unassignedbugs at nondot.org
          Reporter: nicola.gigante at gmail.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Created attachment 12474
  --> http://llvm.org/bugs/attachment.cgi?id=12474&action=edit
Test source code

In the attached code, TBAA correctly recognize the pointers being of different
type, but the vectorizer emits anyway the vector.memcheck block to check if the
buffers overlap.

This happens even in the second part of the attached source code, where the
inputs are not pointers but std::array objects of different element types. The
input arrays are passed by value but the vectorizer still checks for
overlapping buffers.

In a pure compliant C++ context (so no 'restrict' keyword) it seems impossible
to tell the optimizer that I know my arrays won't overlap...

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20140504/1d74d11d/attachment.html>


More information about the llvm-bugs mailing list