[llvm-bugs] [Bug 27206] New: Make std::fill_n use memset_pattern*() for pod types of the right size

via llvm-bugs llvm-bugs at lists.llvm.org
Mon Apr 4 15:41:21 PDT 2016


https://llvm.org/bugs/show_bug.cgi?id=27206

            Bug ID: 27206
           Summary: Make std::fill_n use memset_pattern*() for pod types
                    of the right size
           Product: libc++
           Version: unspecified
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: All Bugs
          Assignee: unassignedclangbugs at nondot.org
          Reporter: ahatanak at gmail.com
                CC: llvm-bugs at lists.llvm.org, mclow.lists at gmail.com
    Classification: Unclassified

libc++ should use memset_pattern when the input is right (== 4/8/16, type is
pod, target iterator is a pointer) instead of using a loop.

For example, clang/llvm currently emits a loop for fill_n in the following
example:

$ cat test.cpp
struct S {
  int i;
};

S v[256];

void foo(const S &s) {
  fill_n(v,256,s); // use memset_pattern4(v,&s,256*4) here
}

-- 
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/20160404/c3b3f48f/attachment.html>


More information about the llvm-bugs mailing list