8#ifndef LLVM_MC_MCSYMBOLMACHO_H
9#define LLVM_MC_MCSYMBOLMACHO_H
19 SF_DescFlagsMask = 0xFFFF,
22 SF_ReferenceTypeMask = 0x0007,
23 SF_ReferenceTypeUndefinedNonLazy = 0x0000,
24 SF_ReferenceTypeUndefinedLazy = 0x0001,
25 SF_ReferenceTypeDefined = 0x0002,
26 SF_ReferenceTypePrivateDefined = 0x0003,
27 SF_ReferenceTypePrivateUndefinedNonLazy = 0x0004,
28 SF_ReferenceTypePrivateUndefinedLazy = 0x0005,
31 SF_ThumbFunc = 0x0008,
32 SF_NoDeadStrip = 0x0020,
33 SF_WeakReference = 0x0040,
34 SF_WeakDefinition = 0x0080,
35 SF_SymbolResolver = 0x0100,
40 SF_CommonAlignmentMask = 0xF0FF,
41 SF_CommonAlignmentShift = 8
56 SF_ReferenceTypeUndefinedLazy);
73 return getFlags() & SF_WeakReference;
80 return getFlags() & SF_WeakDefinition;
87 return getFlags() & SF_SymbolResolver;
107 "Invalid .desc value!");
119 Align Alignment = *MaybeAlignment;
120 unsigned Log2Size =
Log2(Alignment);
127 (Log2Size << SF_CommonAlignmentShift);
131 if (EncodeAsAltEntry)
132 Flags |= SF_AltEntry;
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
MCSymbolMachO(const StringMapEntry< bool > *Name, bool isTemporary)
void setWeakReference() const
bool isNoDeadStrip() const
uint16_t getEncodedFlags(bool EncodeAsAltEntry) const
Get the encoded value of the flags as they will be emitted in to the MachO binary.
void setWeakDefinition() const
void setSymbolResolver() const
void clearReferenceType() const
bool isWeakReference() const
void setReferenceTypeUndefinedLazy(bool Value) const
void setDesc(unsigned Value) const
static bool classof(const MCSymbol *S)
bool isSymbolResolver() const
void setNoDeadStrip() const
bool isWeakDefinition() const
void setThumbFunc() const
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
bool isCommon() const
Is this a 'common' symbol.
void modifyFlags(uint32_t Value, uint32_t Mask) const
Modify the flags via a mask.
StringRef getName() const
getName - Get the symbol name.
void setFlags(uint32_t Value) const
Set the (implementation defined) symbol flags.
uint32_t getFlags() const
Get the (implementation defined) symbol flags.
MaybeAlign getCommonAlignment() const
Return the alignment of a 'common' symbol.
bool isTemporary() const
isTemporary - Check if this is an assembler temporary symbol.
StringMapEntry - This is used to represent one value that is inserted into a StringMap.
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
LLVM Value Representation.
This is an optimization pass for GlobalISel generic memory operations.
void report_fatal_error(Error Err, bool gen_crash_diag=true)
Report a serious error, calling any installed error handler.
unsigned Log2(Align A)
Returns the log2 of the alignment.
This struct is a compact representation of a valid (non-zero power of two) alignment.
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.