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