llvm-project/llvm/utils/TableGen
Craig Topper 6430430958 [TableGen] Use sign rotated VBR for OPC_EmitInteger.
This allows for a much more efficient encoding for small negative
numbers by storing the sign bit first and negating the rest of
the bits. This was already being used for OPC_CheckInteger.

For every in tree target this affects, the table got smaller.
R600GenDAGISel.inc saw the largest reduction of 7K.

I did have to add a new opcode for StringIntegers used for
register class ids and subregister indices since we don't have the
integer value to encode. The enum name is emitted directly into
the table. Previously assumed the enum would expand to a positive
7-bit number. We might be able to just shift that right by 1 and
assume it is a positive 6 bit number, but that will need more
investigation.
2021-05-02 12:40:44 -07:00
..
GlobalISel Revert "Make TableGenGlobalISel an object library" 2021-03-31 13:27:00 -07:00
AsmMatcherEmitter.cpp [TableGen] Allow mnemonics aliases with uppercase 2021-04-16 09:58:20 -04:00
AsmWriterEmitter.cpp [llvm] Use isAlpha/isAlnum (NFC) 2021-01-22 23:25:03 -08:00
AsmWriterInst.cpp [llvm] Use isAlpha/isAlnum (NFC) 2021-01-22 23:25:03 -08:00
AsmWriterInst.h
Attributes.cpp
CMakeLists.txt Revert "Make TableGenGlobalISel an object library" 2021-03-31 13:27:00 -07:00
CTagsEmitter.cpp
CallingConvEmitter.cpp [TableGen] Use ListSeparator (NFC) 2021-02-25 19:54:36 -08:00
CodeBeadsGen.cpp [M68k][TableGen](1/8) TableGen related changes 2021-03-08 12:30:56 -08:00
CodeEmitterGen.cpp [TableGen] Fix warning when compiling generated MCCodeEmitter 2021-03-04 18:35:25 +00:00
CodeGenDAGPatterns.cpp [TableGen] Remove predicate filtering from GenerateVariants. 2021-04-28 16:02:13 -07:00
CodeGenDAGPatterns.h [TableGen] Store predicates in PatternToMatch as ListInit *. Add string for HwModeFeatures 2021-04-28 12:05:49 -07:00
CodeGenHwModes.cpp
CodeGenHwModes.h
CodeGenInstruction.cpp [TableGen] Use StringRef instead of std::string to split up a string that's being parsed. NFCI 2021-04-03 11:48:13 -07:00
CodeGenInstruction.h [TableGen] Use StringRef instead of std::string to split up a string that's being parsed. NFCI 2021-04-03 11:48:13 -07:00
CodeGenIntrinsics.h [TableGen] Add IntrNoMerge as intrinsic property 2021-03-02 09:04:50 -08:00
CodeGenMapTable.cpp [TableGen] CodeGenMapTable - use for-range loop. NFCI. 2021-04-16 18:55:23 +01:00
CodeGenRegisters.cpp [TableGen] Make the map in InfoByHwMode protected. NFCI 2021-02-11 21:16:10 -08:00
CodeGenRegisters.h [TableGen] Use range-based for loops (NFC) 2021-02-01 20:55:09 -08:00
CodeGenSchedule.cpp [TableGen] Use ListSeparator (NFC) 2021-02-10 20:01:20 -08:00
CodeGenSchedule.h [TableGen] Fix D90844 introduced non-determinism due to iteration over a std::map over allocated object pointers 2020-12-18 12:08:16 -08:00
CodeGenTarget.cpp [TableGen] Add IntrNoMerge as intrinsic property 2021-03-02 09:04:50 -08:00
CodeGenTarget.h [TableGen] Drop redundant const from return types (NFC) 2021-01-17 10:39:49 -08:00
DAGISelEmitter.cpp [TableGen] Use range-based for loop. NFC 2021-04-18 12:41:09 -07:00
DAGISelMatcher.cpp [TableGen] Add isContradictoryImpl implementation to CheckCondCodeMatcher and CheckChild2CondCodeMatcher. 2021-01-26 19:44:57 -08:00
DAGISelMatcher.h [TableGen] Add isContradictoryImpl implementation to CheckCondCodeMatcher and CheckChild2CondCodeMatcher. 2021-01-26 19:44:57 -08:00
DAGISelMatcherEmitter.cpp [TableGen] Use sign rotated VBR for OPC_EmitInteger. 2021-05-02 12:40:44 -07:00
DAGISelMatcherGen.cpp [TableGen] Make all the fields in PatternToMatch private. NFCI 2021-02-06 22:34:01 -08:00
DAGISelMatcherOpt.cpp
DFAEmitter.cpp [TableGen] Use ListSeparator (NFC) 2021-02-18 22:46:39 -08:00
DFAEmitter.h
DFAPacketizerEmitter.cpp [TableGen] Indentation and whitespace fixes in generated code. NFC. 2020-11-06 16:10:57 +00:00
DirectiveEmitter.cpp [openacc][openmp] Reduce number of generated file and prefer inclusion of .inc 2021-03-23 09:16:53 -04:00
DisassemblerEmitter.cpp
ExegesisEmitter.cpp [TableGen] Indentation and whitespace fixes in generated code. NFC. 2020-11-06 16:10:57 +00:00
FastISelEmitter.cpp [FastISel] Remove kill tracking 2021-04-03 15:50:13 +02:00
FixedLenDecoderEmitter.cpp [TableGen] Fix excessive compile time issue in FixedLenDecoderEmitter 2021-03-17 09:28:50 +00:00
GICombinerEmitter.cpp [Support] Don't include VirtualFileSystem.h in CommandLine.h 2021-04-21 10:19:01 -04:00
GlobalISelEmitter.cpp [GISel] Teach TableGen to check predicates of immediate operands in patterns 2021-04-30 10:18:45 +02:00
InfoByHwMode.cpp [TableGen] Use ListSeparator (NFC) 2021-02-09 22:14:27 -08:00
InfoByHwMode.h [TableGen] Pass SmallVector to union_modes instead of returning a std::vector. 2021-04-18 15:59:52 -07:00
InstrDocsEmitter.cpp [TableGen] Use ListSeparator (NFC) 2021-02-01 20:55:07 -08:00
InstrInfoEmitter.cpp [M68k][TableGen](1/8) TableGen related changes 2021-03-08 12:30:56 -08:00
IntrinsicEmitter.cpp [TableGen] Add IntrNoMerge as intrinsic property 2021-03-02 09:04:50 -08:00
OptEmitter.cpp
OptEmitter.h
OptParserEmitter.cpp [TableGen] Drop redundant const from return types (NFC) 2021-01-17 10:39:49 -08:00
OptRSTEmitter.cpp
PredicateExpander.cpp [ARM][SchedModels] Convert IsPredicatedPred to MCSchedPredicate 2020-10-19 11:37:54 +03:00
PredicateExpander.h [ARM][SchedModels] Convert IsPredicatedPred to MCSchedPredicate 2020-10-19 11:37:54 +03:00
PseudoLoweringEmitter.cpp [TableGen] Tiny enhancement 2021-03-23 12:49:05 +07:00
RISCVCompressInstEmitter.cpp [RISCV] Add way to mark CompressPats that should only be used for compressing. 2021-01-20 09:20:15 -08:00
RegisterBankEmitter.cpp [TableGen] RegisterBankEmitter - Pass Twine by const reference instead of by value. NFCI. 2021-01-06 14:22:05 +00:00
RegisterInfoEmitter.cpp Add register size info back to MCRegisterClass 2021-03-23 15:04:44 -07:00
SDNodeProperties.cpp
SDNodeProperties.h
SearchableTableEmitter.cpp [TableGen] Use ListSeparator (NFC) 2021-02-08 22:33:51 -08:00
SequenceToOffsetTable.h
SubtargetEmitter.cpp [MCA] Add support for in-order CPUs 2021-03-04 14:08:19 +03:00
SubtargetFeatureInfo.cpp [TableGen] Use ListSeparator (NFC) 2021-02-28 10:59:22 -08:00
SubtargetFeatureInfo.h SubtargetFeatureInfo.h - remove unnecessary include and forward declarations. NFCI. 2020-07-20 13:39:24 +01:00
TableGen.cpp [openacc][openmp] Reduce number of generated file and prefer inclusion of .inc 2021-03-23 09:16:53 -04:00
TableGenBackends.h [openacc][openmp] Reduce number of generated file and prefer inclusion of .inc 2021-03-23 09:16:53 -04:00
Types.cpp
Types.h
WebAssemblyDisassemblerEmitter.cpp [TableGen] Use llvm::append_range (NFC) 2021-01-02 09:24:13 -08:00
WebAssemblyDisassemblerEmitter.h
X86DisassemblerShared.h
X86DisassemblerTables.cpp [llvm] Use static_assert instead of assert (NFC) 2021-01-22 23:25:05 -08:00
X86DisassemblerTables.h
X86EVEX2VEXTablesEmitter.cpp [X86][NFC] Adding one flag to imply whether the instruction should check the predicate when compress EVEX instructions to VEX encoding. 2021-03-09 19:58:01 +08:00
X86FoldTablesEmitter.cpp [llvm] Remove redundant return and continue statements (NFC) 2021-01-14 20:30:34 -08:00
X86ModRMFilters.cpp [X86-64] Support Intel AMX instructions 2020-07-02 08:57:04 +08:00
X86ModRMFilters.h [X86-64] Support Intel AMX instructions 2020-07-02 08:57:04 +08:00
X86RecognizableInstr.cpp [X86] Avoid std::string creation in RecognizableInstr constructor. NFCI. 2020-12-18 16:00:41 +00:00
X86RecognizableInstr.h [X86-64] Support Intel AMX instructions 2020-07-02 08:57:04 +08:00
tdtags