llvm-project/llvm/test/TableGen
Jay Foad b8bf94df25 [TableGen] Fix excessive compile time issue in FixedLenDecoderEmitter
This patch reduces the time taken for clang to compile the generated
disassembler for an out-of-tree target with InsnType bigger than 64 bits
from 4m30s to 48s.

D67686 did a similar thing for CodeEmitterGen.

The idea is to tweak the API of the APInt-like InsnType class so that
we don't need so many temporary InsnTypes. This takes advantage of the
rule stated in D52100 that currently "no string of bits extracted
from the encoding may exceeed 64-bits", so we can use uint64_t for some
temporaries.

D52100 goes on to say that "fields are still permitted to exceed 64-bits
so long as they aren't one contiguous string of bits". This patch breaks
that by always using a "uint64_t tmp" in the generated decodeToMCInst,
but it should be easy to fix in FilterChooser::emitBinaryParser by
choosing to use a different type of tmp based on the known total field
width.

Differential Revision: https://reviews.llvm.org/D98046
2021-03-17 09:28:50 +00:00
..
Common [TableGen] [tests] Change integer ranges to use new '...' punctuation 2020-10-26 10:47:29 -04:00
FixedLenDecoderEmitter [TableGen] Fix excessive compile time issue in FixedLenDecoderEmitter 2021-03-17 09:28:50 +00:00
GICombinerEmitter [gicombiner] Correct 64f1bb5cd2 to account for MSVC's %p format 2020-01-07 12:50:05 -08:00
2003-08-03-PassCode.td
2006-09-18-LargeInt.td
2010-03-24-PrematureDefaults.td
AliasAsmString.td [TableGen] Fix non-standard escape warnings for braces in InstAlias 2020-05-28 09:36:24 +00:00
AllowDuplicateRegisterNames.td Change range operator from deprecated '-' to '...' 2020-09-12 16:26:32 -04:00
AnonDefinitionOnDemand.td
AsmPredicateCombining.td [TableGen] Support combining AssemblerPredicates with ORs 2020-03-13 17:13:51 +00:00
AsmPredicateCombiningRISCV.td [RISCV] Add way to mark CompressPats that should only be used for compressing. 2021-01-20 09:20:15 -08:00
AsmPredicateCondsEmission.td [TableGen] Support combining AssemblerPredicates with ORs 2020-03-13 17:13:51 +00:00
AsmVariant.td
BigEncoder.td Change range operator from deprecated '-' to '...' 2020-09-12 16:26:32 -04:00
BitOffsetDecoder.td [TableGen] Fix excessive compile time issue in FixedLenDecoderEmitter 2021-03-17 09:28:50 +00:00
BitsInit.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
BitsInitOverflow.td
CStyleComment.td
ClassInstanceValue.td
CodeGenSchedule-duplicate-instrw.td [TableGen][CGS] Print better errors on overlapping InstRW 2020-07-27 09:41:10 -06:00
ConcatenatedSubregs.td [llvm] NFC: Fix trivial typo in rst and td files 2020-04-23 14:26:32 +09:00
ConstraintChecking.inc
ConstraintChecking1.td
ConstraintChecking2.td
ConstraintChecking3.td
ConstraintChecking4.td
ConstraintChecking5.td
ConstraintChecking6.td
ConstraintChecking7.td
ContextlessPredicates.td [GlobalISel] Don't skip adding predicate matcher 2020-08-19 07:54:14 +00:00
DAGDefaultOps.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
Dag.td
DefaultOpsGlobalISel.td TableGen: Fix logic for default operands 2020-02-19 23:41:07 -05:00
DefmInherit.td
DefmInsideMultiClass.td
DuplicateFieldValues.td
FastISelEmitter.td
FieldAccess.td
ForeachList.td
ForeachLoop.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
ForwardRef.td
GeneralList.td
GlobalISelEmitter-PR39045.td [GlobalISel][NFC] Factor out common target code from GlobalISelEmitterTests 2019-08-13 22:14:37 +00:00
GlobalISelEmitter-SDNodeXForm-timm.td Refactor argument attribute specification in intrinsic definition. NFC. 2020-05-27 16:37:53 -04:00
GlobalISelEmitter-atomic_store.td TableGen/GlobalISel: Hack the operand order for atomic_store 2020-08-11 10:22:44 -04:00
GlobalISelEmitter-immAllZeroOne.td [TableGen] Remove spurious GISEL prefix from test. 2020-10-30 15:54:57 -04:00
GlobalISelEmitter-immarg-literal-pattern.td Refactor argument attribute specification in intrinsic definition. NFC. 2020-05-27 16:37:53 -04:00
GlobalISelEmitter-input-discard.td TableGen/GlobalISel: Don't check exact intrinsic opcode value 2020-01-17 20:09:53 -05:00
GlobalISelEmitter-nested-subregs.td [TableGen][GlobalISel] add handling of nested *_SUBREG 2020-10-05 10:42:18 +02:00
GlobalISelEmitter-output-discard.td TableGen/GlobalISel: Allow output instructions with multiple defs 2020-07-27 18:31:13 -04:00
GlobalISelEmitter-setcc.td GlobalISel/TableGen: Handle setcc patterns 2019-08-29 01:13:41 +00:00
GlobalISelEmitter-zero-instr.td [GlobalISel][TableGen] Fix seg fault for zero instruction 2020-11-24 07:47:58 +01:00
GlobalISelEmitter-zero-reg.td [TableGen][GlobalISel] Fix handling of zero_reg 2020-09-18 11:01:11 +02:00
GlobalISelEmitter.td [TableGen][GlobalISel] Allow duplicate RendererFns 2021-02-12 15:05:32 +00:00
GlobalISelEmitterCustomPredicate.td [TableGen/GlobalISel] Emit MI_predicate custom code for PatFrags (not only PatFrag) 2021-03-16 12:44:09 +01:00
GlobalISelEmitterMatchTableOptimizer.td [TableGen][GlobalISel] Fix tblgen optimization bug 2020-08-26 12:09:01 +02:00
GlobalISelEmitterOverloadedPtr.td TableGen/GlobalISel: Partially fix nontrivial, custom predicates 2020-07-14 14:26:51 -04:00
GlobalISelEmitterRegSequence.td TableGen/GlobalISel: Emit enum names for reg class ID instead of value 2020-07-13 14:02:08 -04:00
GlobalISelEmitterSkippedPatterns.td AMDGPU/GlobalISel/Emitter Recognize additional 'same operand checks' 2020-09-14 12:10:59 +02:00
GlobalISelEmitterSubreg.td [GlobalISel][TableGen] Fix ConstrainOperandRC bug 2021-01-05 09:30:04 +01:00
GlobalISelEmitterVariadic.td [GlobalISel] Match table opt: fix a bug in matching num of operands 2019-11-01 01:57:48 -07:00
HwModeEncodeDecode.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
HwModeSelect.td Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
Include.inc
Include.td
IntBitInit.td
IntSpecialValues.td [TableGen] Allow 2^63-1 and 2^63-2 as int literals. 2019-03-12 09:28:19 +00:00
InvalidMCSchedClassDesc.td [MCA] Add support for in-order CPUs 2021-03-04 14:08:19 +03:00
JSON-check.py
JSON.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
LazyChange.td
LetInsideMultiClasses.td
ListArgs.td [TableGen] Let list elements have a trailing comma 2019-03-26 11:16:01 +00:00
ListArgsSimple.td
ListConversion.td
ListManip.td
ListOfList.td
ListSlices.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
LoLoL.td
MixedCasedMnemonic.td [TableGen] Allow mnemonics with uppercase letters to be matched 2020-08-14 14:47:52 -07:00
MultiClass-def-fail.td [TableGen] Give meaningful msg for def use in multiclass 2019-03-26 10:49:09 +00:00
MultiClass-defm-fail.td
MultiClass-defm.td
MultiClass.td
MultiClassDefName.td
MultiClassInherit.td
MultiPat.td
NestedForeach.td
Paste.td
RegisterBankEmitter.td
RegisterClass.td [TableGen] Report an error instead of asserting 2020-07-17 11:32:46 +01:00
RegisterEncoder.td [CodeEmitter] Support instruction widths > 64 bits 2019-09-15 08:35:08 +00:00
RegisterInfoEmitter-regcost-list.td Support a list of CostPerUse values 2021-01-29 10:14:52 +05:30
RegisterInfoEmitter-regcost-tuple.td Support a list of CostPerUse values 2021-01-29 10:14:52 +05:30
RegisterInfoEmitter-regcost.td Support a list of CostPerUse values 2021-01-29 10:14:52 +05:30
RelTest.td
SchedModelError.td [TableGen] Include schedule model name in diagnostic. 2019-04-15 10:06:26 +00:00
SetTheory.td
SiblingForeach.td
Slice.td
String.td
SuperSubclassSameName.td
TargetInstrInfo.td
TargetInstrSpec.td
TemplateArgRename.td
Tree.td
TreeNames.td
TwoLevelName.td
UnsetBitInit.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
UnterminatedComment.td
ValidIdentifiers.td
address-space-patfrags.td [Alignment][NFC] Transitionning more getMachineMemOperand call sites 2020-03-31 08:36:18 +00:00
ambiguous-composition.td [TableGen] Examine entire subreg compositions to detect ambiguity 2018-11-29 18:20:08 +00:00
arithmetic.td [TableGen] [AMDGPU] Add !sub operator for subtraction 2020-10-28 12:27:53 -04:00
assert.td [TableGen] Add the assert statement, step 1 2021-01-08 09:47:51 -05:00
cast-list-initializer.td
cast-multiclass.td
cast-string.td [TableGen] Enhance !cast<string> to handle bit and bits types. 2021-01-14 10:20:35 -05:00
cast-typeerror.td
cast.td
code.td [TableGen] Eliminate the 'code' type 2020-12-03 10:19:11 -05:00
compare.td [TableGen] Enhance the six comparison bang operators. 2020-11-13 09:57:27 -05:00
cond-bitlist.td [TblGen] Extend !if semantics through new feature !cond 2019-01-25 10:25:25 +00:00
cond-default.td [TblGen] Extend !if semantics through new feature !cond 2019-01-25 10:25:25 +00:00
cond-empty-list-arg.td [TableGen] Eliminate uses of true and false in .td files. 2020-10-31 10:54:33 -04:00
cond-inheritance.td [TblGen] Extend !if semantics through new feature !cond 2019-01-25 10:25:25 +00:00
cond-let.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
cond-list.td [TblGen] Extend !if semantics through new feature !cond 2019-01-25 10:25:25 +00:00
cond-subclass.td [TblGen] Extend !if semantics through new feature !cond 2019-01-25 10:25:25 +00:00
cond-type.td Enhance TableGen so that backends can produce better error messages. 2020-09-23 13:35:32 -04:00
cond-usage.td [TblGen] Extend !if semantics through new feature !cond 2019-01-25 10:25:25 +00:00
condsbit.td [TableGen] Add true and false literals to represent booleans 2020-11-05 09:07:21 -05:00
dag-functional.td
dag-isel-regclass-emit-enum.td [TableGen][SelectionDAG] Improve efficiency of encoding negative immediates for isel's CheckInteger opcode. 2021-02-18 08:53:17 -08:00
dag-isel-res-order.td [TableGen] Preserve order of output operands in DAGISelMatcherGen 2018-12-05 00:47:59 +00:00
dag-isel-subregs.td [TableGen][SelectionDAG] Improve efficiency of encoding negative immediates for isel's CheckInteger opcode. 2021-02-18 08:53:17 -08:00
defmclass.td
defset-typeerror.td
defset.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
defvar.td [TableGen] Introduce an if/then/else statement. 2020-01-14 10:19:53 +00:00
detailed-records.td [TableGen] [DetailedRecords] Print record name that is null string as "" 2021-01-27 10:41:46 -05:00
directive1.td [Flang][OpenMP][OpenACC] Add function for mapping parser clause classes with the corresponding clause kind. 2021-03-17 12:20:43 +05:30
directive2.td [flang][directive] Get rid of flangClassValue in TableGen 2021-01-19 10:28:46 -05:00
directive3.td [openacc][openmp] Allow duplicate between required and allowed once/exclusive 2020-11-05 16:21:26 -05:00
duplicate-include.inc Tablegen: Remove the error for duplicate include files. 2019-11-20 18:24:10 -08:00
duplicate-include.td Tablegen: Remove the error for duplicate include files. 2019-11-20 18:24:10 -08:00
empty.td [TableGen] Enhance !empty and !size to handle strings and DAGs. 2020-10-19 09:22:20 -04:00
eq-unset.td Fix assertion on `!eq(?, 0)` 2020-02-18 14:05:55 -08:00
eq.td
eqbit.td
field-access-initializers.td [llvm][TableGen] Define FieldInit::isConcrete overload 2020-02-10 18:04:58 -08:00
filter.td [TableGen] Add the !filter bang operator. 2020-11-09 10:56:55 -05:00
foldl.td
foreach-eval.td
foreach-leak.td
foreach-multiclass.td [TableGen] Fix instantiating multiclass in foreach 2021-01-29 10:25:33 -05:00
foreach-range-parse-errors0.td [TableGen] Add true and false literals to represent booleans 2020-11-05 09:07:21 -05:00
foreach-range-parse-errors1.td TableGen: Handle nontrivial foreach range bounds 2019-05-22 21:28:20 +00:00
foreach-range-parse-errors2.td TableGen: Handle nontrivial foreach range bounds 2019-05-22 21:28:20 +00:00
foreach-range-parse-errors3.td TableGen: Handle nontrivial foreach range bounds 2019-05-22 21:28:20 +00:00
foreach-range-parse-errors4.td TableGen: Handle nontrivial foreach range bounds 2019-05-22 21:28:20 +00:00
foreach-range-parse-errors5.td TableGen: Handle nontrivial foreach range bounds 2019-05-22 21:28:20 +00:00
foreach-variable-range.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
foreach.td
generic-tables-instruction.td Update tablegen test after r369847. 2019-08-24 15:11:41 +00:00
generic-tables.td [TableGen] Eliminate the 'code' type 2020-12-03 10:19:11 -05:00
get-operand-type.td [TableGen] Emit OperandType enums for RegisterOperands/RegisterClasses 2019-09-23 18:51:00 +00:00
getsetop.td [TableGen] Change !getop and !setop to !getdagop and !setdagop. 2020-10-23 10:36:05 -04:00
gisel-physreg-input.td GlobalISel: Support physical register inputs in patterns 2019-09-06 20:32:37 +00:00
if-empty-list-arg.td
if-type.td Enhance TableGen so that backends can produce better error messages. 2020-09-23 13:35:32 -04:00
if.td [TableGen] Eliminate uses of true and false in .td files. 2020-10-31 10:54:33 -04:00
ifbit.td
ifstmt.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
immarg.td Refactor argument attribute specification in intrinsic definition. NFC. 2020-05-27 16:37:53 -04:00
inhibit-pset.td [TBLGEN] Inhibit generation of unneeded psets 2020-02-17 15:38:08 -08:00
interleave.td [TableGen] Fix bug in !interleave operator 2020-12-28 12:17:24 -05:00
intrin-properties.td [TableGen] Add IntrNoMerge as intrinsic property 2021-03-02 09:04:50 -08:00
intrin-side-effects.td [IR] Make nosync, nofree and willreturn default for intrinsics. 2020-10-20 11:57:19 +02:00
intrinsic-long-name.td Reland [IR] Intrinsics default attributes and opt-out flag 2020-08-26 11:37:59 +02:00
intrinsic-pointer-to-any.td Reland [IR] Intrinsics default attributes and opt-out flag 2020-08-26 11:37:59 +02:00
intrinsic-struct.td Reland [IR] Intrinsics default attributes and opt-out flag 2020-08-26 11:37:59 +02:00
intrinsic-varargs.td Reland [IR] Intrinsics default attributes and opt-out flag 2020-08-26 11:37:59 +02:00
isa.td
lisp.td
list-element-bitref.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
listconcat.td
listpaste.td TableGen: Allow lists to be concatenated through '#' 2019-03-05 17:16:07 +00:00
listsplat.td [TableGen] Introduce !listsplat 'binary' operator 2019-04-10 18:26:36 +00:00
lit.local.cfg Attempt to fix issue with unresolved lit test in TableGen 2019-08-13 22:32:26 +00:00
math.td [TableGen] [AMDGPU] Add !sub operator for subtraction 2020-10-28 12:27:53 -04:00
name-resolution-consistency.td
nested-comment.td
paste-reserved.td [TableGen] Add true and false literals to represent booleans 2020-11-05 09:07:21 -05:00
pr8330.td
predicate-patfags.td TableGen: Fix assert on PatFrags with predicate code 2019-12-30 14:24:25 -05:00
prep-diag1.td
prep-diag2.td
prep-diag3.td
prep-diag4.td
prep-diag5.td TableGen: support #ifndef in addition to #ifdef. 2019-05-14 13:04:25 +00:00
prep-diag6.td
prep-diag7.td
prep-diag8.td
prep-diag9.td
prep-diag10.td
prep-diag11-include.inc
prep-diag11.td
prep-diag12-include.inc
prep-diag12.td
prep-diag13.td
prep-diag14.td
prep-ifndef-diag-1.td TableGen: support #ifndef in addition to #ifdef. 2019-05-14 13:04:25 +00:00
prep-ifndef-diag-2.td TableGen: support #ifndef in addition to #ifdef. 2019-05-14 13:04:25 +00:00
prep-ifndef.td TableGen: support #ifndef in addition to #ifdef. 2019-05-14 13:04:25 +00:00
prep-region-include.inc
prep-region-processing.td [llvm] NFC: Fix trivial typo in rst and td files 2020-04-23 14:26:32 +09:00
pset-enum.td [TBLGEN] Emit register pressure set enum 2020-02-18 10:09:05 -08:00
range-lists.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
rc-weight-override.td [TBLGEN] Allow to override RC weight 2020-02-14 15:49:52 -08:00
searchabletables-intrinsic.td Reland [IR] Intrinsics default attributes and opt-out flag 2020-08-26 11:37:59 +02:00
self-reference-recursion.td
self-reference-typeerror.td Revert "[TableGen] Improve algorithms for processing template arguments" 2021-02-18 09:26:26 -05:00
self-reference.td [TableGen] Fix anonymous record self-reference in foreach and multiclass 2021-02-01 10:59:07 -05:00
simplify-patfrag.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
size.td [TableGen] Enhance !empty and !size to handle strings and DAGs. 2020-10-19 09:22:20 -04:00
spurious-semi.td [TableGen] Improve error message for semicolon after braced body. 2021-01-12 09:38:05 -05:00
strconcat.td
subst.td
subst2.td
substr.td [TableGen] Add the !substr() bang operator 2020-12-23 10:59:33 -05:00
template-arg-dependency.td
true-false.td [TableGen] Add true and false literals to represent booleans 2020-11-05 09:07:21 -05:00
trydecode-emission.td
trydecode-emission2.td
trydecode-emission3.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
unsetop.td [TableGen] Permit dag operators to be unset. 2019-12-10 11:09:40 +00:00
unterminated-c-comment-include.inc
unterminated-c-comment.td
unterminated-code-block-include.inc
unterminated-code-block.td [TableGen] Eliminate the 'code' type 2020-12-03 10:19:11 -05:00
usevalname.td