llvm-project/llvm/utils/TableGen
Min-Yih Hsu 31f9519d48 [TableGen][CodeEmitter] Introducing the VarLenCodeEmitterGen infrastructure
Full write up:
https://gist.github.com/mshockwave/66e98d099256deefc062633909bb7b5b

The existing CodeEmitterGen infrastructure is unable to generate encoder
function for ISAs with variable-length instructions. This patch
introduces a new infrastructure to support variable-length instruction
encoding, including a new TableGen syntax for writing instruction
encoding directives and a new TableGen backend component,
VarLenCodeEmitterGen, built on top of CodeEmitterGen.

Differential Revision: https://reviews.llvm.org/D115128
2022-02-11 09:31:11 -08:00
..
GlobalISel Cleanup includes for LLVMTableGenGlobalISel 2022-01-28 11:50:50 +01:00
AsmMatcherEmitter.cpp [ARM][AsmParser] Don't emit "deprecated instruction in IT block" warning if requested 2021-11-03 17:18:04 +08:00
AsmWriterEmitter.cpp Revert "Rename llvm::array_lengthof into llvm::size to match std::size from C++17" 2022-01-26 16:55:53 +01:00
AsmWriterInst.cpp Use std::string::substr (NFC) 2021-11-22 08:21:09 -08:00
AsmWriterInst.h
Attributes.cpp
CMakeLists.txt [TableGen][CodeEmitter] Introducing the VarLenCodeEmitterGen infrastructure 2022-02-11 09:31:11 -08:00
CTagsEmitter.cpp
CallingConvEmitter.cpp
CodeBeadsGen.cpp
CodeEmitterGen.cpp [TableGen][CodeEmitter] Introducing the VarLenCodeEmitterGen infrastructure 2022-02-11 09:31:11 -08:00
CodeGenDAGPatterns.cpp [TableGen][RISCV] Relax a restriction in generating patterns for commutable SDNodes. 2022-02-01 21:07:03 -08:00
CodeGenDAGPatterns.h [TableGen] Fix both sides of '&&' are same 2021-10-12 09:19:20 -07:00
CodeGenHwModes.cpp
CodeGenHwModes.h
CodeGenInstruction.cpp [llvm] Use true/false instead of 1/0 (NFC) 2022-01-07 00:39:14 -08:00
CodeGenInstruction.h [llvm] Remove uses of `std::vector<bool>` 2022-01-18 18:20:45 +01:00
CodeGenIntrinsics.h [llvm] Remove unused forward declarations (NFC) 2022-01-07 20:00:34 -08:00
CodeGenMapTable.cpp [TableGen] Fix codgen of InstrMapping with multiple columns and values 2021-10-25 21:00:49 -07:00
CodeGenRegisters.cpp [TableGen][AMDGPU] Allow empty register classes 2022-02-11 17:30:04 +00:00
CodeGenRegisters.h [X86] Implement -fzero-call-used-regs option 2022-02-08 17:42:54 -08:00
CodeGenSchedule.cpp [TableGen] Fix reporting from CodeGenSchedModels::checkCompleteness(). 2022-02-01 11:32:38 -06:00
CodeGenSchedule.h [llvm] Remove unused forward declarations (NFC) 2022-01-07 20:00:34 -08:00
CodeGenTarget.cpp Revert "Rename llvm::array_lengthof into llvm::size to match std::size from C++17" 2022-01-26 16:55:53 +01:00
CodeGenTarget.h [TableGen][SelectionDAG] Use ComplexPattern type for non-leaf nodes 2021-12-03 07:04:59 +00:00
CompressInstEmitter.cpp Cleanup llvm/utils/TableGen headers 2022-01-31 11:16:28 +01:00
DAGISelEmitter.cpp
DAGISelMatcher.cpp
DAGISelMatcher.h
DAGISelMatcherEmitter.cpp utils: Remove some no-op raw_string_ostream flush calls, NFC 2021-12-10 11:26:08 -08:00
DAGISelMatcherGen.cpp utils: Remove some no-op raw_string_ostream flush calls, NFC 2021-12-10 11:26:08 -08:00
DAGISelMatcherOpt.cpp [llvm] Use true/false instead of 1/0 (NFC) 2022-01-07 00:39:14 -08:00
DFAEmitter.cpp
DFAEmitter.h
DFAPacketizerEmitter.cpp
DirectiveEmitter.cpp
DisassemblerEmitter.cpp
ExegesisEmitter.cpp
FastISelEmitter.cpp utils: Remove some no-op raw_string_ostream flush calls, NFC 2021-12-10 11:26:08 -08:00
FixedLenDecoderEmitter.cpp Prepare for LLVMMC headers cleanup 2022-02-09 11:09:16 +01:00
GICombinerEmitter.cpp Cleanup llvm/utils/TableGen headers 2022-01-31 11:16:28 +01:00
GlobalISelEmitter.cpp Cleanup llvm/utils/TableGen headers 2022-01-31 11:16:28 +01:00
InfoByHwMode.cpp Cleanup llvm/utils/TableGen headers 2022-01-31 11:16:28 +01:00
InfoByHwMode.h Cleanup llvm/utils/TableGen headers 2022-01-31 11:16:28 +01:00
InstrDocsEmitter.cpp
InstrInfoEmitter.cpp [llvm] Fix bugprone argument comments (NFC) 2022-01-08 11:56:38 -08:00
IntrinsicEmitter.cpp Cleanup llvm/utils/TableGen headers 2022-01-31 11:16:28 +01:00
OptEmitter.cpp
OptEmitter.h
OptParserEmitter.cpp Cleanup llvm/utils/TableGen headers 2022-01-31 11:16:28 +01:00
OptRSTEmitter.cpp Cleanup llvm/utils/TableGen headers 2022-01-31 11:16:28 +01:00
PredicateExpander.cpp utils: Remove some no-op raw_string_ostream flush calls, NFC 2021-12-10 11:26:08 -08:00
PredicateExpander.h Cleanup llvm/utils/TableGen headers 2022-01-31 11:16:28 +01:00
PseudoLoweringEmitter.cpp
RegisterBankEmitter.cpp Cleanup llvm/utils/TableGen headers 2022-01-31 11:16:28 +01:00
RegisterInfoEmitter.cpp [TableGen][AMDGPU] Allow empty register classes 2022-02-11 17:30:04 +00:00
SDNodeProperties.cpp [NFC][SDNode] Use `StringSwitch` instead of `if` 2022-01-18 08:12:26 +08:00
SDNodeProperties.h
SearchableTableEmitter.cpp Cleanup llvm/utils/TableGen headers 2022-01-31 11:16:28 +01:00
SequenceToOffsetTable.h
SubtargetEmitter.cpp [llvm] Strip redundant lambda (NFC) 2021-12-17 10:51:40 -08:00
SubtargetFeatureInfo.cpp
SubtargetFeatureInfo.h
TableGen.cpp [tblgen] Disable lsan weak hook when building with msvc 2022-01-28 10:02:52 +00:00
TableGenBackends.h
Types.cpp
Types.h
VarLenCodeEmitterGen.cpp [TableGen][CodeEmitter] Introducing the VarLenCodeEmitterGen infrastructure 2022-02-11 09:31:11 -08:00
VarLenCodeEmitterGen.h [TableGen][CodeEmitter] Introducing the VarLenCodeEmitterGen infrastructure 2022-02-11 09:31:11 -08:00
WebAssemblyDisassemblerEmitter.cpp Cleanup llvm/utils/TableGen headers 2022-01-31 11:16:28 +01:00
WebAssemblyDisassemblerEmitter.h Cleanup llvm/utils/TableGen headers 2022-01-31 11:16:28 +01:00
X86DisassemblerShared.h
X86DisassemblerTables.cpp Cleanup llvm/utils/TableGen headers 2022-01-31 11:16:28 +01:00
X86DisassemblerTables.h Cleanup llvm/utils/TableGen headers 2022-01-31 11:16:28 +01:00
X86EVEX2VEXTablesEmitter.cpp [TableGen] X86EVEX2VEXTablesEmitter - Use const-ref iterator in for-range loop. NFCI. 2021-09-17 14:04:53 +01:00
X86FoldTablesEmitter.cpp Cleanup llvm/utils/TableGen headers 2022-01-31 11:16:28 +01:00
X86ModRMFilters.cpp
X86ModRMFilters.h [llvm] Remove redundant member initialization (NFC) 2022-01-08 11:56:44 -08:00
X86RecognizableInstr.cpp Cleanup llvm/utils/TableGen headers 2022-01-31 11:16:28 +01:00
X86RecognizableInstr.h Cleanup llvm/utils/TableGen headers 2022-01-31 11:16:28 +01:00
tdtags