llvm-project/llvm/test/TableGen
Jay Foad 2da58826a5 [TableGen] Allow identical MnemonicAliases with no predicate
My use case for this is illustrated in the test case: I want to define
the same instruction twice with different (disjoint) predicates, because
the instruction has different operands on different subtargets. It's
convenient to do this with a multiclass that also defines an alias for
the instruction.

Previously tablegen would complain if this alias was defined twice with
no predicate. One way to fix this would be to add a predicate on each
definition of the alias, matching the predicate on the instruction. But
this (a) is slightly awkward to do in the real world use case I had, and
(b) leads to an inefficient matcher that will do something like this:

  if (Mnemonic == "foo_alias") {
    if (Features.test(Feature_Subtarget1Bit))
      Mnemonic == "foo";
    else if (Features.test(Feature_Subtarget2Bit))
      Mnemonic == "foo";
    return;
  }

It would be more efficient to skip the feature tests and return "foo"
unconditionally.

Overall it seems better to allow multiple definitions of the identical
alias with no predicate.

Differential Revision: https://reviews.llvm.org/D105033
2021-06-30 10:53:39 +01: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
AsmWriterPCRelOp.td [TableGen] Fix printing second PC-relative operand 2021-06-23 13:27:37 +07:00
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 [TableGen] Use sign rotated VBR for OPC_EmitInteger. 2021-05-02 12:40:44 -07: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
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
ListArgsSimple.td
ListConversion.td
ListManip.td
ListOfList.td
ListSlices.td [TableGen] Resolve concrete but not complete field access initializers 2021-04-13 15:14:56 -07:00
LoLoL.td
MixedCasedMnemonic.td [TableGen] Allow mnemonics aliases with uppercase 2021-04-16 09:58:20 -04:00
MnemonicAlias.td [TableGen] Allow identical MnemonicAliases with no predicate 2021-06-30 10:53:39 +01:00
MultiClass-def-fail.td
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
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
arithmetic.td [TableGen] [AMDGPU] Add !sub operator for subtraction 2020-10-28 12:27:53 -04:00
assert.td [TableGen] Fix two bugs in 'defm' when complex 'assert' is involved. 2021-04-30 11:31:06 -04: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
cond-default.td
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
cond-let.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
cond-list.td
cond-subclass.td
cond-type.td Enhance TableGen so that backends can produce better error messages. 2020-09-23 13:35:32 -04:00
cond-usage.td
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] Use sign rotated VBR for OPC_EmitInteger. 2021-05-02 12:40:44 -07:00
dag-isel-res-order.td
dag-isel-subregs.td [TableGen] Use sign rotated VBR for OPC_EmitInteger. 2021-05-02 12:40:44 -07: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 [openacc][openmp] Reduce number of generated file and prefer inclusion of .inc 2021-03-23 09:16:53 -04:00
directive2.td [openacc][openmp] Reduce number of generated file and prefer inclusion of .inc 2021-03-23 09:16:53 -04:00
directive3.td [openacc][openmp] Reduce number of generated file and prefer inclusion of .inc 2021-03-23 09:16:53 -04: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 [TableGen] Resolve concrete but not complete field access initializers 2021-04-13 15:14:56 -07:00
filter.td [TableGen] Add the !filter bang operator. 2020-11-09 10:56:55 -05:00
find.td [TableGen] Add the !find bang operator 2021-04-28 09:51:00 -04: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
foreach-range-parse-errors2.td
foreach-range-parse-errors3.td
foreach-range-parse-errors4.td
foreach-range-parse-errors5.td
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-predicated.td [GISel] Teach TableGen to check predicates of immediate operands in patterns 2021-04-30 10:18:45 +02: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
listsplat.td
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
nul-char.td [TableGen] Make the NUL character invalid in .td files 2021-05-13 10:17:45 -04:00
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
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
prep-ifndef-diag-2.td
prep-ifndef.td
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
pseudo-inst-expansion.td [TableGen] Allow BitsInit to init integer in pseudo expansion 2021-03-23 11:50:55 +07: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 [TableGen] Improve handling of template arguments 2021-03-19 09:57:53 -04: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
template-args.td [TableGen] Report an error message on a missing comma 2021-04-09 18:48:49 +01:00
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