[PATCH] D144351: llvm-tblgen: Let each emitter self-contained

NAKAMURA Takumi via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Feb 19 07:01:09 PST 2023


chapuni created this revision.
Herald added subscribers: luke, frasercrmck, jdoerfert, luismarques, apazos, sameer.abuasal, s.egerton, Jim, jocewei, PkmX, the_o, brucehoult, MartinMosbeck, rogfer01, edward-jones, zzheng, jrtc27, niosHD, sabuasal, simoncook, johnrusso, rbar, asb.
Herald added a project: All.
chapuni requested review of this revision.
Herald added subscribers: llvm-commits, pcwang-thead, MaskRay.
Herald added a project: LLVM.

llvm-tblgen: Introduce `llvm::TableGen::Emitter` to register backends

`Opt(flag, func, desc)` registers an option into `Action`.

`OptClass<EmitterC>` is also available if `EmitterC(RK).run(OS)` is capable.

`Action` is defined as `ManagedStatic<cl::opt>` to guarantee to be created
when each registration of emitter is invoked.

FIXME: This may be move to `llvm/include/llvm/TableGen/Main.h`

llvm-tblgen: Cleanup for each EmitterClass to be invoked by uniform signature.

llvm-tblgen: Rewrite emitters to use `TableGen::Emitter`

Each emitter became self-contained since it has the registration of option.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D144351

Files:
  llvm/utils/TableGen/AsmMatcherEmitter.cpp
  llvm/utils/TableGen/AsmWriterEmitter.cpp
  llvm/utils/TableGen/Attributes.cpp
  llvm/utils/TableGen/CTagsEmitter.cpp
  llvm/utils/TableGen/CallingConvEmitter.cpp
  llvm/utils/TableGen/CodeEmitterGen.cpp
  llvm/utils/TableGen/CompressInstEmitter.cpp
  llvm/utils/TableGen/DAGISelEmitter.cpp
  llvm/utils/TableGen/DFAEmitter.cpp
  llvm/utils/TableGen/DFAPacketizerEmitter.cpp
  llvm/utils/TableGen/DXILEmitter.cpp
  llvm/utils/TableGen/DirectiveEmitter.cpp
  llvm/utils/TableGen/DisassemblerEmitter.cpp
  llvm/utils/TableGen/ExegesisEmitter.cpp
  llvm/utils/TableGen/FastISelEmitter.cpp
  llvm/utils/TableGen/GICombinerEmitter.cpp
  llvm/utils/TableGen/GlobalISelEmitter.cpp
  llvm/utils/TableGen/InstrDocsEmitter.cpp
  llvm/utils/TableGen/InstrInfoEmitter.cpp
  llvm/utils/TableGen/IntrinsicEmitter.cpp
  llvm/utils/TableGen/OptParserEmitter.cpp
  llvm/utils/TableGen/OptRSTEmitter.cpp
  llvm/utils/TableGen/PseudoLoweringEmitter.cpp
  llvm/utils/TableGen/RISCVTargetDefEmitter.cpp
  llvm/utils/TableGen/RegisterBankEmitter.cpp
  llvm/utils/TableGen/RegisterInfoEmitter.cpp
  llvm/utils/TableGen/SearchableTableEmitter.cpp
  llvm/utils/TableGen/SubtargetEmitter.cpp
  llvm/utils/TableGen/TableGen.cpp
  llvm/utils/TableGen/TableGenBackends.h
  llvm/utils/TableGen/X86EVEX2VEXTablesEmitter.cpp
  llvm/utils/TableGen/X86FoldTablesEmitter.cpp
  llvm/utils/TableGen/X86MnemonicTables.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D144351.498675.patch
Type: text/x-patch
Size: 38415 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230219/3d978f6f/attachment.bin>


More information about the llvm-commits mailing list