[PATCH] D82388: move "basic" builtins to TableGen

Nathan Froyd via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 23 08:31:34 PDT 2020


froydnj created this revision.
froydnj added reviewers: rsmith, stoklund.
Herald added subscribers: llvm-commits, cfe-commits, sstefan1, kerbowa, dmgreen, jfb, atanasyan, jrtc27, kbarton, aheejin, hiraditya, jgravelle-google, sbc100, mgorny, nhaehnle, jvesely, nemanjai, sdardis, dschuff, jholewinski.
Herald added a reviewer: jdoerfert.
Herald added projects: clang, LLVM.

This is the first step towards a move of all builtin function
definitions living in TableGen.  The intent is that once that is
accomplished, the storage cost and runtime cost (due to relocations) of
builtin function info structures can be significantly reduced by using
integer offsets into TableGen'd string tables rather than pointers.

We need to add an additional API to TableGen, as uses of at least the
atomic builtins depend on the order in which they are specified in
Builtins.def/Builtins.td, and changing `getDerivedDefinitions` to emit
records in definition order had other undesirable effects that I was not
prepared to untangle.

No functional change intended.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D82388

Files:
  clang/include/clang/AST/Expr.h
  clang/include/clang/Basic/Builtins.def
  clang/include/clang/Basic/Builtins.h
  clang/include/clang/Basic/Builtins.td
  clang/include/clang/Basic/BuiltinsAArch64.def
  clang/include/clang/Basic/BuiltinsAMDGPU.def
  clang/include/clang/Basic/BuiltinsARM.def
  clang/include/clang/Basic/BuiltinsBPF.def
  clang/include/clang/Basic/BuiltinsHexagon.def
  clang/include/clang/Basic/BuiltinsLe64.def
  clang/include/clang/Basic/BuiltinsMips.def
  clang/include/clang/Basic/BuiltinsNEON.def
  clang/include/clang/Basic/BuiltinsNVPTX.def
  clang/include/clang/Basic/BuiltinsPPC.def
  clang/include/clang/Basic/BuiltinsSVE.def
  clang/include/clang/Basic/BuiltinsSystemZ.def
  clang/include/clang/Basic/BuiltinsWebAssembly.def
  clang/include/clang/Basic/BuiltinsX86.def
  clang/include/clang/Basic/BuiltinsX86_64.def
  clang/include/clang/Basic/BuiltinsXCore.def
  clang/include/clang/Basic/CMakeLists.txt
  clang/include/clang/Basic/arm_neon_incl.td
  clang/include/clang/module.modulemap
  clang/lib/AST/StmtPrinter.cpp
  clang/lib/Basic/Builtins.cpp
  clang/lib/Sema/OpenCLBuiltins.td
  clang/lib/Sema/SemaChecking.cpp
  clang/lib/Sema/SemaExpr.cpp
  clang/test/Analysis/bstring.c
  clang/utils/TableGen/CMakeLists.txt
  clang/utils/TableGen/ClangBuiltinsEmitter.cpp
  clang/utils/TableGen/MveEmitter.cpp
  clang/utils/TableGen/NeonEmitter.cpp
  clang/utils/TableGen/SveEmitter.cpp
  clang/utils/TableGen/TableGen.cpp
  clang/utils/TableGen/TableGenBackends.h
  llvm/include/llvm/TableGen/Record.h
  llvm/lib/TableGen/Record.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D82388.272738.patch
Type: text/x-patch
Size: 180688 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200623/46a78c59/attachment-0001.bin>


More information about the llvm-commits mailing list