[PATCH] D126903: [clang] Add support for __builtin_memset_inline

Guillaume Chatelet via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 2 11:22:08 PDT 2022


gchatelet created this revision.
gchatelet added reviewers: courbet, efriedma, t.p.northover, jdoerfert.
Herald added subscribers: jsji, pengfei, hiraditya.
Herald added a project: All.
gchatelet requested review of this revision.
Herald added projects: clang, LLVM.
Herald added subscribers: llvm-commits, cfe-commits.

In the same spirit as D73543 <https://reviews.llvm.org/D73543> and in reply to https://reviews.llvm.org/D126768#3549920 this patch is adding support for `__builtin_memset_inline`.

The idea is to get support from the compiler to easily write efficient memory function implementations.

This patch could be split in two:

- one for the LLVM part adding the `llvm.memset.inline.*` intrinsics.
- and another one for the Clang part providing the instrinsic as a builtin.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D126903

Files:
  clang/docs/LanguageExtensions.rst
  clang/include/clang/Basic/Builtins.def
  clang/lib/CodeGen/CGBuilder.h
  clang/lib/CodeGen/CGBuiltin.cpp
  clang/lib/Sema/SemaChecking.cpp
  clang/test/CodeGen/builtins-memset-inline.c
  clang/test/Sema/builtins-memset-inline.cpp
  llvm/docs/LangRef.rst
  llvm/include/llvm/CodeGen/SelectionDAG.h
  llvm/include/llvm/IR/IRBuilder.h
  llvm/include/llvm/IR/IntrinsicInst.h
  llvm/include/llvm/IR/Intrinsics.td
  llvm/lib/Analysis/Lint.cpp
  llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  llvm/lib/IR/IRBuilder.cpp
  llvm/lib/IR/Verifier.cpp
  llvm/lib/Target/X86/X86SelectionDAGInfo.cpp
  llvm/test/CodeGen/X86/memset-inline.ll
  llvm/test/Other/lint.ll
  llvm/test/Verifier/intrinsic-immarg.ll
  llvm/test/Verifier/memset-inline.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D126903.433810.patch
Type: text/x-patch
Size: 32313 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20220602/3e7136e9/attachment-0001.bin>


More information about the cfe-commits mailing list