LLVM: include/llvm/CodeGen/GlobalISel/GIMatchTableExecutor.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15#ifndef LLVM_CODEGEN_GLOBALISEL_GIMATCHTABLEEXECUTOR_H
16#define LLVM_CODEGEN_GLOBALISEL_GIMATCHTABLEEXECUTOR_H
17
29#include
30#include
31#include
32#include
33#include <initializer_list>
34#include
35#include
36
37namespace llvm {
38
55
56enum {
59};
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81enum {
82
83
84
85
86
87
88
89
90
91
93
94
95
96
97
98
99
101
102
103
104
105
106
107
108
110
111
112
113
114
115
118
119
120
122
123
124
125
127
128
129
130
131
132
134
135
136
137
139
140
141
142
145
146
147
148
150
151
152
154
155
156
158
159
160
161
163
164
165
166
167
169
170
171
172
176
177
178
179
180
182
183
184
185
186
187
188
189
191
192
193
194
195
196
198
199
200
201
202
203
207
208
209
210
211
212
215
216
217
218
219
221
222
223
224
226
227
228
230
231
232
234
235
236
237
238
240
242
243
244
245
246
248
249
250
251
252
254
256
257
258
259
260
261
263
264
265
266
267
269
270
271
272
273
275
276
277
278
279
280
282
283
284
285
286
288
289
290
291
292
294
295
296
297
299
300
301
302
304
305
306
307
309
310
311
312
313
314
315
316
317
322
323
324
325
326
327
329
330
331
332
333
336
337
338
339
340
341
342
343
345
346
347
348
349
351
352
353
355
356
357
358
359
360
361
363
364
365
366
368
370
371
372
373
375
376
377
378
379
381
383
384
385
386
387
388
390
391
392
393
394
395
396
398
399
400
401
402
404
405
406
407
408
410
411
412
414
415
416
417
419
420
421
422
424
425
426
427
428
429
431
432
433
434
435
438
439
440
441
442
443
445
446
447
448
449
451
452
453
454
455
457
458
459
460
461
462
464
465
466
467
469
470
471
472
474
475
476
477
478
480
481
482
483
485
486
487
488
490
491
492
493
494
495
497
498
499
500
501
503
504
505
506
507
509
510
511
512
513
514
515
516
517
519
520
521
522
523
525
526
527
528
529
531
532
533
534
535
537
538
539
540
542
543
545
546
547
548
549
550
552
553
554
556
557
559
560
561
562
564
565
566
567
568
569
570
572
573
574
575
576
578
579
581
582
583
585
586
588};
589
590
591
592
594public:
596
602
604
606
607
613 VT = vt;
614 MF = &mf;
615 PSI = psi;
616 BFI = bfi;
619 }
620
621protected:
626
628 std::vectorComplexRendererFns::value\_type Renderers;
631
632
633
634
636
637
638
640
642 };
643
645 const auto &F = MF->getFunction();
646 if (F.hasOptSize())
647 return true;
649 if (auto *BB = CurMBB->getBasicBlock())
651 return false;
652 }
653
654public:
655 template <class PredicateBitset, class ComplexMatcherMemFn,
656 class CustomRendererFn>
665
666 for (size_t I = 0; I < NumTypeObjects; ++I)
668 }
673
675 };
676
677protected:
679
680
681
682 template <class TgtExecutor, class PredicateBitset, class ComplexMatcherMemFn,
683 class CustomRendererFn>
685 const ExecInfoTy<PredicateBitset, ComplexMatcherMemFn,
686 CustomRendererFn> &ExecInfo,
691 const PredicateBitset &AvailableFeatures,
693
697
700 "Subclasses must override this with a tablegen-erated function");
701 }
704 "Subclasses must override this with a tablegen-erated function");
705 }
708 "Subclasses must override this with a tablegen-erated function");
709 }
713 "Subclasses must override this with a tablegen-erated function");
714 }
715
719 "Subclasses must override this with a tablegen-erated function");
720 }
721
725
730
733 bool Splat = false) const;
734
735
736
737
740
741
742
743
746
748 Ty Ret;
749 memcpy(&Ret, MatchTable, sizeof(Ret));
750 return Ret;
751 }
752
754 unsigned FirstVarOp) {
755 auto Operands = drop_begin(MI.operands(), FirstVarOp);
756 return {Operands.begin(), Operands.end()};
757 }
758
759public:
760
761
762
763
764
771 unsigned Shift = 7;
772 do {
773 uint64_t Slice = MatchTable[CurrentIdx] & 0x7f;
774 Value += Slice << Shift;
775 Shift += 7;
776 } while (MatchTable[CurrentIdx++] >= 128);
777 }
779 }
780};
781
782}
783
784#endif
unsigned const MachineRegisterInfo * MRI
const TargetInstrInfo & TII
#define LLVM_UNLIKELY(EXPR)
#define LLVM_ATTRIBUTE_ALWAYS_INLINE
LLVM_ATTRIBUTE_ALWAYS_INLINE - On compilers where we have a directive to do so, mark a method "always...
#define LLVM_ATTRIBUTE_RESTRICT
LLVM_ATTRIBUTE_RESTRICT - Annotates a pointer to tell the compiler that it is not aliased in the curr...
This file defines the DenseMap class.
Implement a low-level type suitable for MachineInstr level instruction selection.
Register const TargetRegisterInfo * TRI
This file defines the SmallVector class.
Class for arbitrary precision integers.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
BlockFrequencyInfo pass uses BlockFrequencyInfoImpl implementation to estimate IR basic block frequen...
virtual bool testSimplePredicate(unsigned) const
Definition GIMatchTableExecutor.h:722
bool executeMatchTable(TgtExecutor &Exec, MatcherState &State, const ExecInfoTy< PredicateBitset, ComplexMatcherMemFn, CustomRendererFn > &ExecInfo, MachineIRBuilder &Builder, const uint8_t *MatchTable, const TargetInstrInfo &TII, MachineRegisterInfo &MRI, const TargetRegisterInfo &TRI, const RegisterBankInfo &RBI, const PredicateBitset &AvailableFeatures, CodeGenCoverage *CoverageInfo) const
Execute a given matcher table and return true if the match was successful and false otherwise.
virtual bool testImmPredicate_APFloat(unsigned, const APFloat &) const
Definition GIMatchTableExecutor.h:706
MachineBasicBlock * CurMBB
Definition GIMatchTableExecutor.h:603
BlockFrequencyInfo * BFI
Definition GIMatchTableExecutor.h:601
virtual bool testMOPredicate_MO(unsigned, const MachineOperand &, const MatcherState &State) const
Definition GIMatchTableExecutor.h:716
virtual const uint8_t * getMatchTable() const
Definition GIMatchTableExecutor.h:694
virtual bool testImmPredicate_APInt(unsigned, const APInt &) const
Definition GIMatchTableExecutor.h:702
virtual bool testMIPredicate_MI(unsigned, const MachineInstr &, const MatcherState &State) const
Definition GIMatchTableExecutor.h:710
MachineFunction * MF
Definition GIMatchTableExecutor.h:599
LLVM_ABI GIMatchTableExecutor()
LLVM_ABI bool isBaseWithConstantOffset(const MachineOperand &Root, const MachineRegisterInfo &MRI) const
Return true if the specified operand is a G_PTR_ADD with a G_CONSTANT on the right-hand side.
virtual bool testImmPredicate_I64(unsigned, int64_t) const
Definition GIMatchTableExecutor.h:698
SmallVector< MachineInstrBuilder, 4 > NewMIVector
Definition GIMatchTableExecutor.h:625
static Ty readBytesAs(const uint8_t *MatchTable)
Definition GIMatchTableExecutor.h:747
std::optional< SmallVector< std::function< void(MachineInstrBuilder &)>, 4 > > ComplexRendererFns
Definition GIMatchTableExecutor.h:622
SmallVector< MachineInstr *, 4 > RecordedMIVector
Definition GIMatchTableExecutor.h:624
bool shouldOptForSize(const MachineFunction *MF) const
Definition GIMatchTableExecutor.h:644
GISelValueTracking * VT
Definition GIMatchTableExecutor.h:598
static LLVM_ATTRIBUTE_ALWAYS_INLINE uint64_t fastDecodeULEB128(const uint8_t *LLVM_ATTRIBUTE_RESTRICT MatchTable, uint64_t &CurrentIdx)
Definition GIMatchTableExecutor.h:766
LLVM_ABI bool isOperandImmEqual(const MachineOperand &MO, int64_t Value, const MachineRegisterInfo &MRI, bool Splat=false) const
ProfileSummaryInfo * PSI
Definition GIMatchTableExecutor.h:600
virtual ~GIMatchTableExecutor()=default
LLVM_ABI bool isObviouslySafeToFold(MachineInstr &MI, MachineInstr &IntoMI) const
Return true if MI can obviously be folded into IntoMI.
virtual void setupMF(MachineFunction &mf, GISelValueTracking *vt, CodeGenCoverage *covinfo=nullptr, ProfileSummaryInfo *psi=nullptr, BlockFrequencyInfo *bfi=nullptr)
Setup per-MF executor state.
Definition GIMatchTableExecutor.h:608
virtual bool runCustomAction(unsigned, const MatcherState &State, NewMIVector &OutMIs) const
Definition GIMatchTableExecutor.h:726
CodeGenCoverage * CoverageInfo
Definition GIMatchTableExecutor.h:597
static ArrayRef< MachineOperand > getRemainingOperands(const MachineInstr &MI, unsigned FirstVarOp)
Definition GIMatchTableExecutor.h:753
virtual void setupGeneratedPerFunctionState(MachineFunction &MF)=0
Helper class to build MachineInstr.
Representation of each machine instruction.
MachineOperand class - Representation of each machine instruction operand.
MachineRegisterInfo - Keep track of information for virtual and physical registers,...
Analysis providing profile information.
Holds all the information related to register banks.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
TargetInstrInfo - Interface to description of machine instruction set.
TargetRegisterInfo base class - We assume that the target defines a static array of TargetRegisterDes...
LLVM Value Representation.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
This is an optimization pass for GlobalISel generic memory operations.
auto drop_begin(T &&RangeOrContainer, size_t N=1)
Return a range covering RangeOrContainer with the first N elements excluded.
LLVM_ABI bool shouldOptimizeForSize(const MachineFunction *MF, ProfileSummaryInfo *PSI, const MachineBlockFrequencyInfo *BFI, PGSOQueryType QueryType=PGSOQueryType::Other)
Returns true if machine function MF is suggested to be size-optimized based on the profile.
@ GICXXCustomAction_Invalid
Definition GIMatchTableExecutor.h:58
@ GICXXPred_Invalid
Definition GIMatchTableExecutor.h:57
@ GIR_AddIntrinsicID
Adds an intrinsic ID to the specified instruction.
Definition GIMatchTableExecutor.h:423
@ GIR_ComplexRenderer
Render complex operands to the specified instruction.
Definition GIMatchTableExecutor.h:484
@ GIR_ReplaceRegWithTempReg
Replaces all references to a register with a temporary register.
Definition GIMatchTableExecutor.h:577
@ GIR_ComplexSubOperandRenderer
Render sub-operands of complex operands to the specified instruction.
Definition GIMatchTableExecutor.h:489
@ GIR_MakeTempReg
Create a new temporary register that's not constrained.
Definition GIMatchTableExecutor.h:563
@ GIM_CheckMemorySizeEqualTo
Check the size of the memory access for the given machine memory operand.
Definition GIMatchTableExecutor.h:181
@ GIM_RootCheckType
GIM_CheckType but InsnID is omitted and defaults to zero.
Definition GIMatchTableExecutor.h:241
@ GIM_RootCheckRegBankForClass
GIM_CheckRegBankForClass but InsnID is omitted and defaults to zero.
Definition GIMatchTableExecutor.h:255
@ GIR_Done
A successful emission.
Definition GIMatchTableExecutor.h:580
@ GIM_RecordNamedOperand
Predicates with 'let PredicateCodeUsesOperands = 1' need to examine some named operands that will be ...
Definition GIMatchTableExecutor.h:344
@ GIM_Try
Begin a try-block to attempt a match and jump to OnFail if it is unsuccessful.
Definition GIMatchTableExecutor.h:92
@ GIR_RootConstrainSelectedInstOperands
GIR_ConstrainSelectedInstOperands but InsnID is omitted and defaults to zero.
Definition GIMatchTableExecutor.h:544
@ GIM_CheckIsBuildVectorAllOnes
Check if this is a vector that can be treated as a vector splat constant.
Definition GIMatchTableExecutor.h:213
@ GIM_CheckNumOperands
Check the instruction has the right number of operands.
Definition GIMatchTableExecutor.h:138
@ GIR_AddCImm
Add an CImm to the specified instruction.
Definition GIMatchTableExecutor.h:479
@ GIR_ConstrainOperandRC
Constrain an instruction operand to a register class.
Definition GIMatchTableExecutor.h:536
@ GIM_CheckI64ImmPredicate
Check an immediate predicate on the specified instruction.
Definition GIMatchTableExecutor.h:149
@ GIR_AddImplicitDef
Add an implicit register def to the specified instruction.
Definition GIMatchTableExecutor.h:409
@ GIM_CheckAPIntImmPredicate
Check an immediate predicate on the specified instruction via an APInt.
Definition GIMatchTableExecutor.h:153
@ GIM_CheckHasNoUse
Check if there's no use of the first result.
Definition GIMatchTableExecutor.h:229
@ GIM_CheckPointerToAny
Check the type of a pointer to any address space.
Definition GIMatchTableExecutor.h:247
@ GIM_CheckMemorySizeEqualToLLT
Check the size of the memory access for the given machine memory operand against the size of an opera...
Definition GIMatchTableExecutor.h:204
@ GIM_CheckComplexPattern
Check the operand matches a complex predicate.
Definition GIMatchTableExecutor.h:262
@ GIR_CopyConstantAsSImm
Render a G_CONSTANT operator as a sign-extended immediate.
Definition GIMatchTableExecutor.h:524
@ GIR_EraseFromParent
Erase from parent.
Definition GIMatchTableExecutor.h:555
@ GIM_SwitchType
Switch over the LLT on the specified instruction operand.
Definition GIMatchTableExecutor.h:109
@ GIR_CopySubReg
Copy an operand to the specified instruction.
Definition GIMatchTableExecutor.h:403
@ GIR_MutateOpcode
Mutate an instruction.
Definition GIMatchTableExecutor.h:362
@ GIM_CheckIsBuildVectorAllZeros
Definition GIMatchTableExecutor.h:214
@ GIM_CheckAtomicOrderingOrStrongerThan
Definition GIMatchTableExecutor.h:174
@ GIR_AddRegister
Add an register to the specified instruction.
Definition GIMatchTableExecutor.h:418
@ GIR_AddTempSubRegister
Add a temporary register to the specified instruction.
Definition GIMatchTableExecutor.h:463
@ GIM_CheckIsSafeToFold
Checks if the matched instructions numbered [1, 1+N) can be folded into the root (inst 0).
Definition GIMatchTableExecutor.h:308
@ GIM_MIFlagsNot
Definition GIMatchTableExecutor.h:335
@ GIM_CheckOpcode
Check the opcode on the specified instruction.
Definition GIMatchTableExecutor.h:126
@ GIR_ReplaceReg
Replaces all references to a register from an instruction with another register from another instruct...
Definition GIMatchTableExecutor.h:571
@ GIM_SwitchOpcode
Switch over the opcode on the specified instruction.
Definition GIMatchTableExecutor.h:100
@ GIM_CheckAPFloatImmPredicate
Check a floating point immediate predicate on the specified instruction.
Definition GIMatchTableExecutor.h:157
@ GIM_CheckAllSameOperandIgnoreCopies
Definition GIMatchTableExecutor.h:321
@ GIM_Reject
Fail the current try-block, or completely fail to match if there is no current try-block.
Definition GIMatchTableExecutor.h:354
@ GIR_AddSimpleTempRegister
Add a temporary register to the specified instruction without setting any flags.
Definition GIMatchTableExecutor.h:456
@ GIR_AddTempRegister
Add a temporary register to the specified instruction.
Definition GIMatchTableExecutor.h:450
@ GIR_Copy
Copy an operand to the specified instruction.
Definition GIMatchTableExecutor.h:380
@ GIR_AddImm
Add an immediate to the specified instruction.
Definition GIMatchTableExecutor.h:468
@ GIR_CopyFConstantAsFPImm
Render a G_FCONSTANT operator as a sign-extended immediate.
Definition GIMatchTableExecutor.h:530
@ GIU_NumOpcodes
Keeping track of the number of the GI opcodes. Must be the last entry.
Definition GIMatchTableExecutor.h:587
@ GIR_CopyRemaining
Copies all operand starting from OpIdx in OldInsnID into the new instruction NewInsnID.
Definition GIMatchTableExecutor.h:389
@ GIM_MIFlags
Check that a matched instruction has, or doesn't have a MIFlag.
Definition GIMatchTableExecutor.h:334
@ GIR_CopyOrAddZeroReg
Copy an operand to the specified instruction or add a zero register if the operand is a zero immediat...
Definition GIMatchTableExecutor.h:397
@ GIM_CheckMemoryAlignment
Check the minimum alignment of the memory access for the given machine memory operand.
Definition GIMatchTableExecutor.h:197
@ GIM_CheckIsSameOperand
Check the specified operands are identical.
Definition GIMatchTableExecutor.h:318
@ GIR_AddImm8
Add signed 8 bit immediate to the specified instruction.
Definition GIMatchTableExecutor.h:473
@ GIM_CheckIsSameOperandIgnoreCopies
Definition GIMatchTableExecutor.h:319
@ GIM_CheckIsMBB
Check the specified operand is an MBB.
Definition GIMatchTableExecutor.h:298
@ GIM_CheckNumOperandsLE
Check the instruction has a number of operands <= or >= than given number.
Definition GIMatchTableExecutor.h:143
@ GIM_CheckMemorySizeGreaterThanLLT
Definition GIMatchTableExecutor.h:206
@ GIM_CheckRegBankForClass
Check the register bank for the specified operand.
Definition GIMatchTableExecutor.h:253
@ GIM_CheckNumOperandsGE
Definition GIMatchTableExecutor.h:144
@ GIM_CheckLiteralInt
Check the operand is a specific literal integer (i.e.
Definition GIMatchTableExecutor.h:281
@ GIM_CheckMemorySizeLessThanLLT
Definition GIMatchTableExecutor.h:205
@ GIM_RecordRegType
Records an operand's register type into the set of temporary types.
Definition GIMatchTableExecutor.h:350
@ GIM_CheckLeafOperandPredicate
Check a leaf predicate on the specified instruction.
Definition GIMatchTableExecutor.h:168
@ GIM_CheckHasOneUse
Check if there's one use of the first result.
Definition GIMatchTableExecutor.h:233
@ GIM_CheckAllSameOperand
Definition GIMatchTableExecutor.h:320
@ GIR_EraseRootFromParent_Done
Combines both a GIR_EraseFromParent 0 + GIR_Done.
Definition GIMatchTableExecutor.h:558
@ GIR_CopyMIFlags
Copy the MIFlags of a matched instruction into an output instruction.
Definition GIMatchTableExecutor.h:444
@ GIR_DoneWithCustomAction
Calls a C++ function that concludes the current match.
Definition GIMatchTableExecutor.h:508
@ GIR_BuildMI
Build a new instruction.
Definition GIMatchTableExecutor.h:367
@ GIM_RecordInsn
Record the specified instruction.
Definition GIMatchTableExecutor.h:116
@ GIM_CheckIsImm
Check the specified operand is an Imm.
Definition GIMatchTableExecutor.h:303
@ GIR_BuildRootMI
GIR_BuildMI but InsnID is omitted and defaults to zero.
Definition GIMatchTableExecutor.h:369
@ GIM_CheckFeatures
Check the feature bits Feature(2) - Expected features.
Definition GIMatchTableExecutor.h:121
@ GIM_CheckCanReplaceReg
Check we can replace all uses of a register with another.
Definition GIMatchTableExecutor.h:328
@ GIM_CheckMemoryAddressSpace
Check the address space of the memory access for the given machine memory operand.
Definition GIMatchTableExecutor.h:190
@ GIR_CustomRenderer
Render operands to the specified instruction using a custom function.
Definition GIMatchTableExecutor.h:502
@ GIM_CheckAtomicOrdering
Check a memory operation has the specified atomic ordering.
Definition GIMatchTableExecutor.h:173
@ GIM_CheckType
Check the type for the specified operand.
Definition GIMatchTableExecutor.h:239
@ GIM_CheckConstantInt8
Check the operand is a specific 8-bit signed integer.
Definition GIMatchTableExecutor.h:274
@ GIM_CheckCmpPredicate
Check the operand is a specific predicate.
Definition GIMatchTableExecutor.h:293
@ GIM_CheckOpcodeIsEither
Check the opcode on the specified instruction, checking 2 acceptable alternatives.
Definition GIMatchTableExecutor.h:133
@ GIR_SetImplicitDefDead
Marks the implicit def of a register as dead.
Definition GIMatchTableExecutor.h:430
@ GIR_UnsetMIFlags
Definition GIMatchTableExecutor.h:437
@ GIR_BuildConstant
Builds a constant and stores its result in a TempReg.
Definition GIMatchTableExecutor.h:374
@ GIR_AddImplicitUse
Add an implicit register use to the specified instruction.
Definition GIMatchTableExecutor.h:413
@ GIR_Coverage
Increment the rule coverage counter.
Definition GIMatchTableExecutor.h:584
@ GIR_MergeMemOperands
Merge all memory operands into instruction.
Definition GIMatchTableExecutor.h:551
@ GIM_CheckImmOperandPredicate
Check an immediate predicate on the specified instruction.
Definition GIMatchTableExecutor.h:162
@ GIM_CheckAtomicOrderingWeakerThan
Definition GIMatchTableExecutor.h:175
@ GIR_SetMIFlags
Set or unset a MIFlag on an instruction.
Definition GIMatchTableExecutor.h:436
@ GIM_CheckIntrinsicID
Check the operand is a specific intrinsic ID.
Definition GIMatchTableExecutor.h:287
@ GIM_CheckConstantInt
Check the operand is a specific integer.
Definition GIMatchTableExecutor.h:268
@ GIR_RootToRootCopy
GIR_Copy but with both New/OldInsnIDs omitted and defaulting to zero.
Definition GIMatchTableExecutor.h:382
@ GIR_ComplexSubOperandSubRegRenderer
Render subregisters of suboperands of complex operands to the specified instruction.
Definition GIMatchTableExecutor.h:496
@ GIM_RecordInsnIgnoreCopies
Definition GIMatchTableExecutor.h:117
@ GIR_CustomOperandRenderer
Render operands to the specified instruction using a custom function, reading from a specific operand...
Definition GIMatchTableExecutor.h:518
@ GIR_ConstrainSelectedInstOperands
Constrain an instructions operands according to the instruction description.
Definition GIMatchTableExecutor.h:541
@ GIM_CheckCxxInsnPredicate
Check a generic C++ instruction predicate.
Definition GIMatchTableExecutor.h:225
@ GIM_CheckSimplePredicate
Check a trivial predicate which takes no arguments.
Definition GIMatchTableExecutor.h:220
const LLT * TypeObjects
Definition GIMatchTableExecutor.h:669
ExecInfoTy(const LLT *TypeObjects, size_t NumTypeObjects, const PredicateBitset *FeatureBitsets, const ComplexMatcherMemFn *ComplexPredicates, const CustomRendererFn *CustomRenderers)
Definition GIMatchTableExecutor.h:658
const CustomRendererFn * CustomRenderers
Definition GIMatchTableExecutor.h:672
SmallDenseMap< LLT, unsigned, 64 > TypeIDMap
Definition GIMatchTableExecutor.h:674
const ComplexMatcherMemFn * ComplexPredicates
Definition GIMatchTableExecutor.h:671
const PredicateBitset * FeatureBitsets
Definition GIMatchTableExecutor.h:670
std::array< const MachineOperand *, 3 > RecordedOperands
Named operands that predicate with 'let PredicateCodeUsesOperands = 1' referenced in its argument lis...
Definition GIMatchTableExecutor.h:635
SmallVector< LLT, 4 > RecordedTypes
Types extracted from an instruction's operand.
Definition GIMatchTableExecutor.h:639
RecordedMIVector MIs
Definition GIMatchTableExecutor.h:629
LLVM_ABI MatcherState(unsigned MaxRenderers)
DenseMap< unsigned, Register > TempRegisters
Definition GIMatchTableExecutor.h:630
std::vector< ComplexRendererFns::value_type > Renderers
Definition GIMatchTableExecutor.h:628