1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
llvm-mirror/test/TableGen
Craig Topper 5c5e25358e [TableGen][SelectionDAG] Improve efficiency of encoding negative immediates for isel's CheckInteger opcode.
CheckInteger uses an int64_t encoded using a variable width encoding
that is optimized for encoding a number with a lot of leading zeros.
Negative numbers have no leading zeros so use the largest encoding
requiring 9 bytes.

I believe its most like we want to check for positive and negative
numbers near 0. -1 is quite common due to its use in the 'not'
idiom.

To optimize for this, we can borrow an idea from the bitcode format
and move the sign bit to bit 0 with the magnitude stored in the
upper bits. This will drastically increase the number of leading
zeros for small magnitudes. Then we can run this value through
VBR encoding.

This gives a small reduction in the table size on all in tree
targets except VE where size increased by about 300 bytes due
to intrinsic ids now requiring 3 bytes instead of 2. Since the
intrinsic enum space is shared by all targets this an unfortunate
consquence of where VE is currently located in the range.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D96317
2021-02-18 08:53:17 -08:00
..
Common [TableGen] [tests] Change integer ranges to use new '...' punctuation 2020-10-26 10:47:29 -04:00
FixedLenDecoderEmitter [TableGen] [tests] Change integer ranges to use new '...' punctuation 2020-10-26 10:47:29 -04:00
GICombinerEmitter
2003-08-03-PassCode.td
2006-09-18-LargeInt.td
2010-03-24-PrematureDefaults.td
address-space-patfrags.td
AliasAsmString.td
AllowDuplicateRegisterNames.td Change range operator from deprecated '-' to '...' 2020-09-12 16:26:32 -04:00
ambiguous-composition.td
AnonDefinitionOnDemand.td
arithmetic.td [TableGen] [AMDGPU] Add !sub operator for subtraction 2020-10-28 12:27:53 -04:00
AsmPredicateCombining.td
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
AsmVariant.td
assert.td [TableGen] Add the assert statement, step 1 2021-01-08 09:47:51 -05:00
BigEncoder.td Change range operator from deprecated '-' to '...' 2020-09-12 16:26:32 -04:00
BitOffsetDecoder.td Change range operator from deprecated '-' to '...' 2020-09-12 16:26:32 -04:00
BitsInit.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
BitsInitOverflow.td
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
ClassInstanceValue.td
code.td [TableGen] Eliminate the 'code' type 2020-12-03 10:19:11 -05:00
CodeGenSchedule-duplicate-instrw.td
compare.td [TableGen] Enhance the six comparison bang operators. 2020-11-13 09:57:27 -05:00
ConcatenatedSubregs.td
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
ConstraintChecking1.td
ConstraintChecking2.td
ConstraintChecking3.td
ConstraintChecking4.td
ConstraintChecking5.td
ConstraintChecking6.td
ConstraintChecking7.td
ConstraintChecking.inc
ContextlessPredicates.td
CStyleComment.td
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
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
Dag.td
DAGDefaultOps.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
DefaultOpsGlobalISel.td
defmclass.td
DefmInherit.td
DefmInsideMultiClass.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
detailed-records.td [TableGen] [DetailedRecords] Print record name that is null string as "" 2021-01-27 10:41:46 -05:00
directive1.td [flang][directive] Get rid of flangClassValue in TableGen 2021-01-19 10:28:46 -05:00
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
duplicate-include.td
DuplicateFieldValues.td
empty.td [TableGen] Enhance !empty and !size to handle strings and DAGs. 2020-10-19 09:22:20 -04:00
eq-unset.td
eq.td
eqbit.td
FastISelEmitter.td
field-access-initializers.td
FieldAccess.td
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
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
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
generic-tables-instruction.td
generic-tables.td [TableGen] Eliminate the 'code' type 2020-12-03 10:19:11 -05:00
get-operand-type.td
getsetop.td [TableGen] Change !getop and !setop to !getdagop and !setdagop. 2020-10-23 10:36:05 -04:00
gisel-physreg-input.td
GlobalISelEmitter-atomic_store.td
GlobalISelEmitter-immAllZeroOne.td [TableGen] Remove spurious GISEL prefix from test. 2020-10-30 15:54:57 -04:00
GlobalISelEmitter-immarg-literal-pattern.td
GlobalISelEmitter-input-discard.td
GlobalISelEmitter-nested-subregs.td [TableGen][GlobalISel] add handling of nested *_SUBREG 2020-10-05 10:42:18 +02:00
GlobalISelEmitter-output-discard.td
GlobalISelEmitter-PR39045.td
GlobalISelEmitter-SDNodeXForm-timm.td
GlobalISelEmitter-setcc.td
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 AMDGPU/GlobalISel/Emitter Support for predicate code that uses operands 2020-09-14 10:39:56 +02:00
GlobalISelEmitterMatchTableOptimizer.td [TableGen][GlobalISel] Fix tblgen optimization bug 2020-08-26 12:09:01 +02:00
GlobalISelEmitterOverloadedPtr.td
GlobalISelEmitterRegSequence.td
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
HwModeEncodeDecode.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
HwModeSelect.td
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
Include.inc
Include.td
inhibit-pset.td
IntBitInit.td
interleave.td [TableGen] Fix bug in !interleave operator 2020-12-28 12:17:24 -05: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
IntSpecialValues.td
InvalidMCSchedClassDesc.td
isa.td
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
lisp.td
list-element-bitref.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
ListArgs.td
ListArgsSimple.td
listconcat.td
ListConversion.td
ListManip.td
ListOfList.td
listpaste.td
ListSlices.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
listsplat.td
lit.local.cfg
LoLoL.td
math.td [TableGen] [AMDGPU] Add !sub operator for subtraction 2020-10-28 12:27:53 -04:00
MixedCasedMnemonic.td
MultiClass-def-fail.td
MultiClass-defm-fail.td
MultiClass-defm.td
MultiClass.td
MultiClassDefName.td
MultiClassInherit.td
MultiPat.td
name-resolution-consistency.td
nested-comment.td
NestedForeach.td
paste-reserved.td [TableGen] Add true and false literals to represent booleans 2020-11-05 09:07:21 -05:00
Paste.td
pr8330.td
predicate-patfags.td
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
pset-enum.td
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
RegisterBankEmitter.td
RegisterClass.td
RegisterEncoder.td
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
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
SetTheory.td
SiblingForeach.td
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
Slice.td
spurious-semi.td [TableGen] Improve error message for semicolon after braced body. 2021-01-12 09:38:05 -05:00
strconcat.td
String.td
subst2.td
subst.td
substr.td [TableGen] Add the !substr() bang operator 2020-12-23 10:59:33 -05:00
SuperSubclassSameName.td
TargetInstrInfo.td
TargetInstrSpec.td
template-arg-dependency.td
TemplateArgRename.td
Tree.td
TreeNames.td
true-false.td [TableGen] Add true and false literals to represent booleans 2020-11-05 09:07:21 -05:00
trydecode-emission2.td
trydecode-emission3.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
trydecode-emission.td
TwoLevelName.td
UnsetBitInit.td Update TableGen test files to use the new '...' range punctuation. 2020-09-12 16:26:32 -04:00
unsetop.td
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
UnterminatedComment.td
usevalname.td
ValidIdentifiers.td