LLVM: include/llvm/CodeGen/MIRYamlMapping.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef LLVM_CODEGEN_MIRYAMLMAPPING_H

15#define LLVM_CODEGEN_MIRYAMLMAPPING_H

16

23#include

24#include

25#include

26#include

27#include

28

29namespace llvm {

31

32

33

46

51

54 if (const auto *Node =

55 reinterpret_cast<yaml::Input *>(Ctx)->getCurrentNode())

57 return "";

58 }

59

61};

62

67

79

87

97

98

99

111

116

118 if (const auto *Node =

119 reinterpret_cast<yaml::Input *>(Ctx)->getCurrentNode())

122 }

123

127};

128

132 IO.enumCase(EntryKind, "block-address",

134 IO.enumCase(EntryKind, "gp-rel64-block-address",

136 IO.enumCase(EntryKind, "gp-rel32-block-address",

138 IO.enumCase(EntryKind, "label-difference32",

140 IO.enumCase(EntryKind, "label-difference64",

144 }

145};

146

150 out << uint64_t(Alignment ? Alignment->value() : 0U);

151 }

153 unsigned long long n;

155 return "invalid number";

157 return "must be 0 or a power of two";

160 }

162};

163

166 OS << Alignment.value();

167 }

169 unsigned long long N;

171 return "invalid number";

173 return "must be a power of two";

174 Alignment = Align(N);

176 }

178};

179

180}

181}

182

186

187namespace llvm {

188namespace yaml {

189

203

208 YamlIO.mapOptional("preferred-register", Reg.PreferredRegister,

209 StringValue());

211 std::vector());

212 }

213

214 static const bool flow = true;

215};

216

226

234

235 static const bool flow = true;

236};

237

238

239

240

241

242

243

244

273

281

286 StringValue());

288 "type", Object.Type,

290 YamlIO.mapOptional("offset", Object.Offset, (int64_t)0);

293 YamlIO.mapOptional("alignment", Object.Alignment, std::nullopt);

295 YamlIO.mapOptional("callee-saved-register", Object.CalleeSavedRegister,

296 StringValue());

297 YamlIO.mapOptional("callee-saved-restored", Object.CalleeSavedRestored,

298 true);

299 YamlIO.mapOptional("local-offset", Object.LocalOffset,

300 std::optional<int64_t>());

301 YamlIO.mapOptional("debug-info-variable", Object.DebugVar,

302 StringValue());

303 YamlIO.mapOptional("debug-info-expression", Object.DebugExpr,

304 StringValue());

305 YamlIO.mapOptional("debug-info-location", Object.DebugLoc,

306 StringValue());

307 }

308

309 static const bool flow = true;

310};

311

312

313

325

328 YamlIO.mapRequired("entry-value-register", Object.EntryValueRegister);

329 YamlIO.mapRequired("debug-info-variable", Object.DebugVar);

330 YamlIO.mapRequired("debug-info-expression", Object.DebugExpr);

331 YamlIO.mapRequired("debug-info-location", Object.DebugLoc);

332 }

333 static const bool flow = true;

334};

335

336

337

365

366template <>

374

375template <>

387

392 "type", Object.Type,

394 YamlIO.mapOptional("offset", Object.Offset, (int64_t)0);

396 YamlIO.mapOptional("alignment", Object.Alignment, std::nullopt);

399 YamlIO.mapOptional("isImmutable", Object.IsImmutable, false);

400 YamlIO.mapOptional("isAliased", Object.IsAliased, false);

401 }

402 YamlIO.mapOptional("callee-saved-register", Object.CalleeSavedRegister,

403 StringValue());

404 YamlIO.mapOptional("callee-saved-restored", Object.CalleeSavedRestored,

405 true);

406 YamlIO.mapOptional("debug-info-variable", Object.DebugVar,

407 StringValue());

408 YamlIO.mapOptional("debug-info-expression", Object.DebugExpr,

409 StringValue());

410 YamlIO.mapOptional("debug-info-location", Object.DebugLoc,

411 StringValue());

412 }

413

414 static const bool flow = true;

415};

416

417

418

420

421

422

426

429

431};

432

437

441 if (Scalar.starts_with("%stack.")) {

442 Num = Scalar.substr(7);

443 } else if (Scalar.starts_with("%fixed-stack.")) {

444 Num = Scalar.substr(13);

446 } else {

447 return "Invalid frame index, needs to start with %stack. or "

448 "%fixed-stack.";

449 }

451 return "Invalid frame index, not a valid number";

452

453 if (const auto *Node =

454 reinterpret_cast<yaml::Input *>(Ctx)->getCurrentNode())

457 }

458

460};

461

462

471

472

474

475

484

487

489

494};

495

501

502 static const bool flow = true;

503};

504}

505}

506

508

509namespace llvm {

510namespace yaml {

511

517 std::vectorCallSiteInfo::ArgRegPair());

519 }

520

521 static const bool flow = true;

522};

523

524

537

546

547 static const bool flow = true;

548};

549}

550}

551

553

554namespace llvm {

555namespace yaml {

568

577

581 std::vector Blocks;

582

586 };

587

590

594};

595

599 YamlIO.mapOptional("blocks", Entry.Blocks, std::vector());

600 }

601};

602

613

622

623}

624}

625

635

636namespace llvm {

637namespace yaml {

638

639

640

641

642

643

644

645

646

647

648

649

650

651

652

653

654

663

666 YamlIO.mapRequired("point", Entry.Point);

667 YamlIO.mapOptional("registers", Entry.Registers,

668 std::vector());

669 }

670};

671

675 YamlIO.mapOptional("entries", JT.Entries,

676 std::vectorMachineJumpTable::Entry());

677 }

678};

679

680}

681}

682

684

685namespace llvm {

686namespace yaml {

687

688

689

690

691

692

693

694

717

731 Other.CVBytesOfCalleeSavedRegisters &&

740 }

741};

742

774

775

776

781

783 static void mapping(IO &YamlIO, std::unique_ptr &MFI) {

784 if (MFI)

785 MFI->mappingImpl(YamlIO);

786 }

787};

788

793

798

801

802

807

814

819 std::vector LiveIns;

821

822

827 std::vector Constants;

835};

836

848

849

850

852 YamlIO.mapOptional("isSSA", MF.IsSSA, std::optional());

855

863

866 false);

868 std::vector());

870 std::vector());

872 std::optional<std::vector>());

875 std::vector());

877 std::vector());

879 std::vector());

881 std::vector());

883 std::vector());

885 std::vector());

891 std::vector());

894 std::vector());

896 }

897};

898

899}

900}

901

902#endif

#define LLVM_YAML_IS_SEQUENCE_VECTOR(type)

Utility for declaring that a std::vector of a particular type should be considered a YAML sequence.

#define LLVM_YAML_IS_FLOW_SEQUENCE_VECTOR(type)

Utility for declaring that a std::vector of a particular type should be considered a YAML flow sequen...

This is an important base class in LLVM.

Tagged union holding either a T or a Error.

The MachineFrameInfo class represents an abstract stack frame until prolog/epilog code is inserted.

JTEntryKind

JTEntryKind - This enum indicates how each entry of the jump table is represented and emitted.

@ EK_GPRel32BlockAddress

EK_GPRel32BlockAddress - Each entry is an address of block, encoded with a relocation as gp-relative,...

@ EK_Inline

EK_Inline - Jump table entries are emitted inline at their point of use.

@ EK_LabelDifference32

EK_LabelDifference32 - Each entry is the address of the block minus the address of the jump table.

@ EK_Custom32

EK_Custom32 - Each entry is a 32-bit value that is custom lowered by the TargetLowering::LowerCustomJ...

@ EK_LabelDifference64

EK_LabelDifference64 - Each entry is the address of the block minus the address of the jump table.

@ EK_BlockAddress

EK_BlockAddress - Each entry is a plain address of block, e.g.: .word LBB123.

@ EK_GPRel64BlockAddress

EK_GPRel64BlockAddress - Each entry is an address of block, encoded with a relocation as gp-relative,...

static LLVM_ABI void printStackObjectReference(raw_ostream &OS, unsigned FrameIndex, bool IsFixed, StringRef Name)

Print a stack object reference.

Represents a range in source code.

StringRef - Represent a constant reference to a string, i.e.

bool consumeInteger(unsigned Radix, T &Result)

Parse the current string as an integer of the specified radix.

The instances of the Type class are immutable: once they are created, they are never changed.

LLVM Value Representation.

LLVM_ABI Value(Type *Ty, unsigned scid)

This class implements an extremely fast bulk output stream that can only output to a stream.

virtual bool outputting() const =0

void enumCase(T &Val, StringRef Str, const T ConstVal)

void mapOptional(StringRef Key, T &Val)

void mapRequired(StringRef Key, T &Val)

The Input class is used to parse a yaml document into in-memory structs and vectors.

Abstract base class for all Nodes.

SMRange getSourceRange() const

unsigned ID

LLVM IR allows to use arbitrary numbers as calling convention identifiers.

@ ScalablePredicateVector

Definition MIRYamlMapping.h:30

QuotingType

Describe which type of quotes should be used when quoting is necessary.

QuotingType needsQuotes(StringRef S, bool ForcePreserveAsString=true)

This is an optimization pass for GlobalISel generic memory operations.

constexpr bool isPowerOf2_64(uint64_t Value)

Return true if the argument is a power of two > 0 (64 bit edition.)

@ Sub

Subtraction of integers.

OutputIt move(R &&Range, OutputIt Out)

Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.

LLVM_ABI bool getAsUnsignedInteger(StringRef Str, unsigned Radix, unsigned long long &Result)

Helper functions for StringRef::getAsInteger.

Implement std::hash so that hash_code can be used in STL containers.

This struct is a compact representation of a valid (non-zero power of two) alignment.

constexpr uint64_t value() const

This is a hole in the type system and should not be abused.

This struct is a compact representation of a valid (power of two) or undefined (0) alignment.

static void output(const BlockStringValue &S, void *Ctx, raw_ostream &OS)

Definition MIRYamlMapping.h:89

static StringRef input(StringRef Scalar, void *Ctx, BlockStringValue &S)

Definition MIRYamlMapping.h:93

This class should be specialized by type that requires custom conversion to/from a YAML literal block...

Definition MIRYamlMapping.h:80

StringValue Value

Definition MIRYamlMapping.h:81

bool operator==(const BlockStringValue &Other) const

Definition MIRYamlMapping.h:83

Definition MIRYamlMapping.h:476

uint16_t ArgNo

Definition MIRYamlMapping.h:478

bool operator==(const ArgRegPair &Other) const

Definition MIRYamlMapping.h:480

StringValue Reg

Definition MIRYamlMapping.h:477

Serializable representation of CallSiteInfo.

Definition MIRYamlMapping.h:473

std::vector< uint64_t > CalleeTypeIds

Numeric callee type identifiers for the callgraph section.

Definition MIRYamlMapping.h:488

std::vector< ArgRegPair > ArgForwardingRegs

Definition MIRYamlMapping.h:486

MachineInstrLoc CallLocation

Definition MIRYamlMapping.h:485

bool operator==(const CallSiteInfo &Other) const

Definition MIRYamlMapping.h:490

Definition MIRYamlMapping.h:603

MachineInstrLoc CallSite

Definition MIRYamlMapping.h:604

StringValue Callee

Definition MIRYamlMapping.h:605

unsigned Flags

Definition MIRYamlMapping.h:606

bool operator==(const CalledGlobal &Other) const

Definition MIRYamlMapping.h:608

Serializable representation of debug value substitutions.

Definition MIRYamlMapping.h:525

unsigned DstInst

Definition MIRYamlMapping.h:528

unsigned DstOp

Definition MIRYamlMapping.h:529

unsigned Subreg

Definition MIRYamlMapping.h:530

bool operator==(const DebugValueSubstitution &Other) const

Definition MIRYamlMapping.h:532

unsigned SrcInst

Definition MIRYamlMapping.h:526

unsigned SrcOp

Definition MIRYamlMapping.h:527

Serializable representation of the MCRegister variant of MachineFunction::VariableDbgInfo.

Definition MIRYamlMapping.h:314

StringValue DebugLoc

Definition MIRYamlMapping.h:318

bool operator==(const EntryValueObject &Other) const

Definition MIRYamlMapping.h:319

StringValue DebugVar

Definition MIRYamlMapping.h:316

StringValue EntryValueRegister

Definition MIRYamlMapping.h:315

StringValue DebugExpr

Definition MIRYamlMapping.h:317

Serializable representation of the fixed stack object from the MachineFrameInfo class.

Definition MIRYamlMapping.h:338

bool operator==(const FixedMachineStackObject &Other) const

Definition MIRYamlMapping.h:354

StringValue CalleeSavedRegister

Definition MIRYamlMapping.h:348

UnsignedValue ID

Definition MIRYamlMapping.h:340

uint64_t Size

Definition MIRYamlMapping.h:343

StringValue DebugLoc

Definition MIRYamlMapping.h:352

bool IsImmutable

Definition MIRYamlMapping.h:346

StringValue DebugVar

Definition MIRYamlMapping.h:350

bool IsAliased

Definition MIRYamlMapping.h:347

StringValue DebugExpr

Definition MIRYamlMapping.h:351

ObjectType

Definition MIRYamlMapping.h:339

@ DefaultType

Definition MIRYamlMapping.h:339

@ SpillSlot

Definition MIRYamlMapping.h:339

ObjectType Type

Definition MIRYamlMapping.h:341

TargetStackID::Value StackID

Definition MIRYamlMapping.h:345

bool CalleeSavedRestored

Definition MIRYamlMapping.h:349

MaybeAlign Alignment

Definition MIRYamlMapping.h:344

int64_t Offset

Definition MIRYamlMapping.h:342

Definition MIRYamlMapping.h:63

FlowStringValue(std::string Value)

Definition MIRYamlMapping.h:65

FlowStringValue()=default

A serializaable representation of a reference to a stack object or fixed stack object.

Definition MIRYamlMapping.h:419

int FI

Definition MIRYamlMapping.h:423

Expected< int > getFI(const llvm::MachineFrameInfo &MFI) const

SMRange SourceRange

Definition MIRYamlMapping.h:425

bool IsFixed

Definition MIRYamlMapping.h:424

Definition MIRYamlMapping.h:556

StringValue Value

Definition MIRYamlMapping.h:558

bool IsTargetSpecific

Definition MIRYamlMapping.h:560

MaybeAlign Alignment

Definition MIRYamlMapping.h:559

bool operator==(const MachineConstantPoolValue &Other) const

Definition MIRYamlMapping.h:562

UnsignedValue ID

Definition MIRYamlMapping.h:557

Serializable representation of MachineFrameInfo.

Definition MIRYamlMapping.h:695

bool HasStackMap

Definition MIRYamlMapping.h:698

bool operator==(const MachineFrameInfo &Other) const

Definition MIRYamlMapping.h:718

bool HasCalls

Definition MIRYamlMapping.h:704

std::vector< SaveRestorePointEntry > RestorePoints

Definition MIRYamlMapping.h:716

bool IsCalleeSavedInfoValid

Definition MIRYamlMapping.h:713

unsigned MaxCallFrameSize

~0u means: not computed yet.

Definition MIRYamlMapping.h:707

bool HasVAStart

Definition MIRYamlMapping.h:710

bool HasPatchPoint

Definition MIRYamlMapping.h:699

bool AdjustsStack

Definition MIRYamlMapping.h:703

bool HasTailCall

Definition MIRYamlMapping.h:712

uint64_t StackSize

Definition MIRYamlMapping.h:700

StringValue StackProtector

Definition MIRYamlMapping.h:705

std::vector< SaveRestorePointEntry > SavePoints

Definition MIRYamlMapping.h:715

unsigned MaxAlignment

Definition MIRYamlMapping.h:702

bool HasMustTailInVarArgFunc

Definition MIRYamlMapping.h:711

bool IsFrameAddressTaken

Definition MIRYamlMapping.h:696

unsigned LocalFrameSize

Definition MIRYamlMapping.h:714

unsigned CVBytesOfCalleeSavedRegisters

Definition MIRYamlMapping.h:708

int OffsetAdjustment

Definition MIRYamlMapping.h:701

bool HasOpaqueSPAdjustment

Definition MIRYamlMapping.h:709

bool IsReturnAddressTaken

Definition MIRYamlMapping.h:697

StringValue FunctionContext

Definition MIRYamlMapping.h:706

Targets should override this in a way that mirrors the implementation of llvm::MachineFunctionInfo.

Definition MIRYamlMapping.h:777

virtual void mappingImpl(IO &YamlIO)

Definition MIRYamlMapping.h:779

virtual ~MachineFunctionInfo()=default

Definition MIRYamlMapping.h:217

bool operator==(const MachineFunctionLiveIn &Other) const

Definition MIRYamlMapping.h:221

StringValue VirtualRegister

Definition MIRYamlMapping.h:219

StringValue Register

Definition MIRYamlMapping.h:218

Definition MIRYamlMapping.h:789

bool FailsVerification

Definition MIRYamlMapping.h:815

bool HasEHContTarget

Definition MIRYamlMapping.h:810

BlockStringValue Body

Definition MIRYamlMapping.h:834

std::vector< MachineStackObject > StackObjects

Definition MIRYamlMapping.h:826

bool FailedISel

Definition MIRYamlMapping.h:797

std::vector< StringValue > MachineMetadataNodes

Definition MIRYamlMapping.h:832

bool CallsEHReturn

Definition MIRYamlMapping.h:808

bool CallsUnwindInit

Definition MIRYamlMapping.h:809

std::optional< std::vector< FlowStringValue > > CalleeSavedRegisters

Definition MIRYamlMapping.h:820

std::vector< CalledGlobal > CalledGlobals

Definition MIRYamlMapping.h:833

MaybeAlign Alignment

Definition MIRYamlMapping.h:791

bool Selected

Definition MIRYamlMapping.h:796

std::optional< bool > HasFakeUses

Definition MIRYamlMapping.h:806

std::vector< EntryValueObject > EntryValueObjects

Definition MIRYamlMapping.h:825

bool RegBankSelected

Definition MIRYamlMapping.h:795

std::optional< bool > NoPHIs

Definition MIRYamlMapping.h:803

bool TracksRegLiveness

Definition MIRYamlMapping.h:799

bool TracksDebugUserValues

Definition MIRYamlMapping.h:816

bool UseDebugInstrRef

Definition MIRYamlMapping.h:817

std::vector< MachineConstantPoolValue > Constants

Definition MIRYamlMapping.h:827

std::optional< bool > NoVRegs

Definition MIRYamlMapping.h:805

bool HasEHScopes

Definition MIRYamlMapping.h:811

std::vector< CallSiteInfo > CallSitesInfo

Definition MIRYamlMapping.h:829

bool HasWinCFI

Definition MIRYamlMapping.h:800

std::vector< MachineFunctionLiveIn > LiveIns

Definition MIRYamlMapping.h:819

StringRef Name

Definition MIRYamlMapping.h:790

std::vector< VirtualRegisterDefinition > VirtualRegisters

Definition MIRYamlMapping.h:818

std::vector< FixedMachineStackObject > FixedStackObjects

Definition MIRYamlMapping.h:824

std::optional< bool > IsSSA

Definition MIRYamlMapping.h:804

bool HasEHFunclets

Definition MIRYamlMapping.h:812

bool Legalized

Definition MIRYamlMapping.h:794

std::vector< DebugValueSubstitution > DebugValueSubstitutions

Definition MIRYamlMapping.h:830

std::unique_ptr< MachineFunctionInfo > MachineFuncInfo

Constant pool.

Definition MIRYamlMapping.h:828

bool IsOutlined

Definition MIRYamlMapping.h:813

MachineJumpTable JumpTableInfo

Definition MIRYamlMapping.h:831

bool ExposesReturnsTwice

Definition MIRYamlMapping.h:792

MachineFrameInfo FrameInfo

Definition MIRYamlMapping.h:823

Identifies call instruction location in machine function.

Definition MIRYamlMapping.h:463

unsigned Offset

Definition MIRYamlMapping.h:465

bool operator==(const MachineInstrLoc &Other) const

Definition MIRYamlMapping.h:467

unsigned BlockNum

Definition MIRYamlMapping.h:464

Definition MIRYamlMapping.h:579

bool operator==(const Entry &Other) const

Definition MIRYamlMapping.h:583

std::vector< FlowStringValue > Blocks

Definition MIRYamlMapping.h:581

UnsignedValue ID

Definition MIRYamlMapping.h:580

Definition MIRYamlMapping.h:578

bool operator==(const MachineJumpTable &Other) const

Definition MIRYamlMapping.h:591

std::vector< Entry > Entries

Definition MIRYamlMapping.h:589

MachineJumpTableInfo::JTEntryKind Kind

Definition MIRYamlMapping.h:588

Serializable representation of stack object from the MachineFrameInfo class.

Definition MIRYamlMapping.h:245

ObjectType

Definition MIRYamlMapping.h:246

@ VariableSized

Definition MIRYamlMapping.h:246

@ DefaultType

Definition MIRYamlMapping.h:246

@ SpillSlot

Definition MIRYamlMapping.h:246

UnsignedValue ID

Definition MIRYamlMapping.h:247

MaybeAlign Alignment

Definition MIRYamlMapping.h:253

StringValue CalleeSavedRegister

Definition MIRYamlMapping.h:255

ObjectType Type

Definition MIRYamlMapping.h:250

StringValue DebugLoc

Definition MIRYamlMapping.h:260

bool operator==(const MachineStackObject &Other) const

Definition MIRYamlMapping.h:262

TargetStackID::Value StackID

Definition MIRYamlMapping.h:254

std::optional< int64_t > LocalOffset

Definition MIRYamlMapping.h:257

uint64_t Size

Definition MIRYamlMapping.h:252

StringValue DebugExpr

Definition MIRYamlMapping.h:259

StringValue DebugVar

Definition MIRYamlMapping.h:258

StringValue Name

Definition MIRYamlMapping.h:248

int64_t Offset

Definition MIRYamlMapping.h:251

bool CalleeSavedRestored

Definition MIRYamlMapping.h:256

static void mapping(IO &YamlIO, CallSiteInfo &CSInfo)

Definition MIRYamlMapping.h:513

static const bool flow

Definition MIRYamlMapping.h:521

static const bool flow

Definition MIRYamlMapping.h:502

static void mapping(IO &YamlIO, CallSiteInfo::ArgRegPair &ArgReg)

Definition MIRYamlMapping.h:497

static void mapping(IO &YamlIO, CalledGlobal &CG)

Definition MIRYamlMapping.h:615

static void mapping(IO &YamlIO, DebugValueSubstitution &Sub)

Definition MIRYamlMapping.h:539

static const bool flow

Definition MIRYamlMapping.h:547

static const bool flow

Definition MIRYamlMapping.h:333

static void mapping(yaml::IO &YamlIO, EntryValueObject &Object)

Definition MIRYamlMapping.h:327

static const bool flow

Definition MIRYamlMapping.h:414

static void mapping(yaml::IO &YamlIO, FixedMachineStackObject &Object)

Definition MIRYamlMapping.h:389

static void mapping(IO &YamlIO, MachineConstantPoolValue &Constant)

Definition MIRYamlMapping.h:570

static void mapping(IO &YamlIO, MachineFrameInfo &MFI)

Definition MIRYamlMapping.h:744

static const bool flow

Definition MIRYamlMapping.h:235

static void mapping(IO &YamlIO, MachineFunctionLiveIn &LiveIn)

Definition MIRYamlMapping.h:228

static void mapping(IO &YamlIO, MachineFunction &MF)

Definition MIRYamlMapping.h:838

static void mapping(IO &YamlIO, MachineJumpTable &JT)

Definition MIRYamlMapping.h:673

static void mapping(IO &YamlIO, MachineJumpTable::Entry &Entry)

Definition MIRYamlMapping.h:597

static void mapping(yaml::IO &YamlIO, MachineStackObject &Object)

Definition MIRYamlMapping.h:283

static const bool flow

Definition MIRYamlMapping.h:309

static void mapping(IO &YamlIO, SaveRestorePointEntry &Entry)

Definition MIRYamlMapping.h:665

static const bool flow

Definition MIRYamlMapping.h:214

static void mapping(IO &YamlIO, VirtualRegisterDefinition &Reg)

Definition MIRYamlMapping.h:205

static void mapping(IO &YamlIO, std::unique_ptr< MachineFunctionInfo > &MFI)

Definition MIRYamlMapping.h:783

This class should be specialized by any type that needs to be converted to/from a YAML mapping.

Definition MIRYamlMapping.h:655

std::vector< StringValue > Registers

Definition MIRYamlMapping.h:657

StringValue Point

Definition MIRYamlMapping.h:656

bool operator==(const SaveRestorePointEntry &Other) const

Definition MIRYamlMapping.h:659

static void enumeration(yaml::IO &IO, FixedMachineStackObject::ObjectType &Type)

Definition MIRYamlMapping.h:368

static void enumeration(yaml::IO &IO, MachineJumpTableInfo::JTEntryKind &EntryKind)

Definition MIRYamlMapping.h:130

static void enumeration(yaml::IO &IO, MachineStackObject::ObjectType &Type)

Definition MIRYamlMapping.h:275

static void enumeration(yaml::IO &IO, TargetStackID::Value &ID)

Definition MIRYamlMapping.h:377

This class should be specialized by any integral type that converts to/from a YAML scalar where there...

static StringRef input(StringRef Scalar, void *, Align &Alignment)

Definition MIRYamlMapping.h:168

static QuotingType mustQuote(StringRef)

Definition MIRYamlMapping.h:177

static void output(const Align &Alignment, void *, llvm::raw_ostream &OS)

Definition MIRYamlMapping.h:165

static QuotingType mustQuote(StringRef S)

Definition MIRYamlMapping.h:77

static void output(const FlowStringValue &S, void *, raw_ostream &OS)

Definition MIRYamlMapping.h:69

static StringRef input(StringRef Scalar, void *Ctx, FlowStringValue &S)

Definition MIRYamlMapping.h:73

static void output(const FrameIndex &FI, void *, raw_ostream &OS)

Definition MIRYamlMapping.h:434

static StringRef input(StringRef Scalar, void *Ctx, FrameIndex &FI)

Definition MIRYamlMapping.h:438

static QuotingType mustQuote(StringRef S)

Definition MIRYamlMapping.h:459

static StringRef input(StringRef Scalar, void *, MaybeAlign &Alignment)

Definition MIRYamlMapping.h:152

static void output(const MaybeAlign &Alignment, void *, llvm::raw_ostream &out)

Definition MIRYamlMapping.h:148

static QuotingType mustQuote(StringRef)

Definition MIRYamlMapping.h:161

static StringRef input(StringRef Scalar, void *Ctx, StringValue &S)

Definition MIRYamlMapping.h:52

static QuotingType mustQuote(StringRef S)

Definition MIRYamlMapping.h:60

static void output(const StringValue &S, void *, raw_ostream &OS)

Definition MIRYamlMapping.h:48

static StringRef input(StringRef Scalar, void *Ctx, UnsignedValue &Value)

Definition MIRYamlMapping.h:117

static QuotingType mustQuote(StringRef Scalar)

Definition MIRYamlMapping.h:124

static void output(const UnsignedValue &Value, void *Ctx, raw_ostream &OS)

Definition MIRYamlMapping.h:113

This class should be specialized by type that requires custom conversion to/from a yaml scalar.

A wrapper around std::string which contains a source range that's being set during parsing.

Definition MIRYamlMapping.h:34

StringValue(const char Val[])

Definition MIRYamlMapping.h:40

StringValue(std::string Value)

Definition MIRYamlMapping.h:39

SMRange SourceRange

Definition MIRYamlMapping.h:36

std::string Value

Definition MIRYamlMapping.h:35

bool operator==(const StringValue &Other) const

Definition MIRYamlMapping.h:42

A wrapper around unsigned which contains a source range that's being set during parsing.

Definition MIRYamlMapping.h:100

bool operator==(const UnsignedValue &Other) const

Definition MIRYamlMapping.h:107

UnsignedValue(unsigned Value)

Definition MIRYamlMapping.h:105

unsigned Value

Definition MIRYamlMapping.h:101

SMRange SourceRange

Definition MIRYamlMapping.h:102

Definition MIRYamlMapping.h:190

bool operator==(const VirtualRegisterDefinition &Other) const

Definition MIRYamlMapping.h:198

StringValue Class

Definition MIRYamlMapping.h:192

std::vector< FlowStringValue > RegisterFlags

Definition MIRYamlMapping.h:194

StringValue PreferredRegister

Definition MIRYamlMapping.h:193

UnsignedValue ID

Definition MIRYamlMapping.h:191