[libc-commits] [PATCH] D111622: [libc] automemcpy - codegen

Guillaume Chatelet via Phabricator via libc-commits libc-commits at lists.llvm.org
Tue Oct 12 02:34:58 PDT 2021


gchatelet created this revision.
gchatelet added a reviewer: courbet.
Herald added subscribers: libc-commits, ecnelises, tschuett, mgrang.
Herald added a project: libc-project.
gchatelet requested review of this revision.

"automemcpy: A framework for automatic generation of fundamental memory operations"
https://research.google/pubs/pub50338/

This patch implements the concepts presented in the paper, the overall approach is the following:

- Makes use of constraint programming to model the implementation of a memory function (memcpy, memset, memcmp, bzero, bcmp).
- Generate the code for all valid implementations
- Compile the implementations and benchmark them on a set of machines. The benchmark makes use of representative distributions for the function's arguments.
- Analyze the result and pick "the best" performing function according to the specific environement.

This patch in particular implements the code generation, turning a set of FunctionDescriptors into function implementations in a C++ file.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D111622

Files:
  libc/benchmarks/automemcpy/CodeGen.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D111622.378931.patch
Type: text/x-patch
Size: 23575 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libc-commits/attachments/20211012/44660d28/attachment-0001.bin>


More information about the libc-commits mailing list