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: [email protected]
          Reporter: [email protected]
                CC: [email protected]
    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.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to