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";
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
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
821
822
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