LLVM  8.0.0svn
Public Member Functions | Protected Attributes | List of all members
llvm::MCAsmInfo Class Reference

This class is intended to be used as a base class for asm properties and features specific to the target. More...

#include "llvm/MC/MCAsmInfo.h"

Inheritance diagram for llvm::MCAsmInfo:
Inheritance graph
[legend]
Collaboration diagram for llvm::MCAsmInfo:
Collaboration graph
[legend]

Public Member Functions

 MCAsmInfo ()
 
virtual ~MCAsmInfo ()
 
unsigned getCodePointerSize () const
 Get the code pointer size in bytes. More...
 
unsigned getCalleeSaveStackSlotSize () const
 Get the callee-saved register stack slot size in bytes. More...
 
bool isLittleEndian () const
 True if the target is little endian. More...
 
bool isStackGrowthDirectionUp () const
 True if target stack grow up. More...
 
bool hasSubsectionsViaSymbols () const
 
const chargetData8bitsDirective () const
 
const chargetData16bitsDirective () const
 
const chargetData32bitsDirective () const
 
const chargetData64bitsDirective () const
 
const chargetGPRel64Directive () const
 
const chargetGPRel32Directive () const
 
const chargetDTPRel64Directive () const
 
const chargetDTPRel32Directive () const
 
const chargetTPRel64Directive () const
 
const chargetTPRel32Directive () const
 
virtual MCSectiongetNonexecutableStackSection (MCContext &Ctx) const
 Targets can implement this method to specify a section to switch to if the translation unit doesn't have any trampolines that require an executable stack. More...
 
virtual bool isSectionAtomizableBySymbols (const MCSection &Section) const
 True if the section is atomized using the symbols in it. More...
 
virtual const MCExprgetExprForPersonalitySymbol (const MCSymbol *Sym, unsigned Encoding, MCStreamer &Streamer) const
 
virtual const MCExprgetExprForFDESymbol (const MCSymbol *Sym, unsigned Encoding, MCStreamer &Streamer) const
 
virtual bool isValidUnquotedName (StringRef Name) const
 Return true if the identifier Name does not need quotes to be syntactically correct. More...
 
virtual bool shouldOmitSectionDirective (StringRef SectionName) const
 Return true if the .section directive should be omitted when emitting SectionName. More...
 
bool usesSunStyleELFSectionSwitchSyntax () const
 
bool usesELFSectionDirectiveForBSS () const
 
bool needsDwarfSectionOffsetDirective () const
 
bool hasMachoZeroFillDirective () const
 
bool hasMachoTBSSDirective () const
 
bool hasCOFFAssociativeComdats () const
 
bool hasCOFFComdatConstants () const
 
unsigned getMaxInstLength () const
 
unsigned getMinInstAlignment () const
 
bool getDollarIsPC () const
 
const chargetSeparatorString () const
 
unsigned getCommentColumn () const
 This indicates the column (zero-based) at which asm comments should be printed. More...
 
StringRef getCommentString () const
 
const chargetLabelSuffix () const
 
bool useAssignmentForEHBegin () const
 
bool needsLocalForSize () const
 
StringRef getPrivateGlobalPrefix () const
 
StringRef getPrivateLabelPrefix () const
 
bool hasLinkerPrivateGlobalPrefix () const
 
StringRef getLinkerPrivateGlobalPrefix () const
 
const chargetInlineAsmStart () const
 
const chargetInlineAsmEnd () const
 
const chargetCode16Directive () const
 
const chargetCode32Directive () const
 
const chargetCode64Directive () const
 
unsigned getAssemblerDialect () const
 
bool doesAllowAtInName () const
 
bool supportsNameQuoting () const
 
bool doesSupportDataRegionDirectives () const
 
const chargetZeroDirective () const
 
const chargetAsciiDirective () const
 
const chargetAscizDirective () const
 
bool getAlignmentIsInBytes () const
 
unsigned getTextAlignFillValue () const
 
const chargetGlobalDirective () const
 
bool doesSetDirectiveSuppressReloc () const
 
bool hasAggressiveSymbolFolding () const
 
bool getCOMMDirectiveAlignmentIsInBytes () const
 
LCOMM::LCOMMType getLCOMMDirectiveAlignmentType () const
 
bool hasFunctionAlignment () const
 
bool hasDotTypeDotSizeDirective () const
 
bool hasSingleParameterDotFile () const
 
bool hasIdentDirective () const
 
bool hasNoDeadStrip () const
 
bool hasAltEntry () const
 
const chargetWeakDirective () const
 
const chargetWeakRefDirective () const
 
bool hasWeakDefDirective () const
 
bool hasWeakDefCanBeHiddenDirective () const
 
bool hasLinkOnceDirective () const
 
MCSymbolAttr getHiddenVisibilityAttr () const
 
MCSymbolAttr getHiddenDeclarationVisibilityAttr () const
 
MCSymbolAttr getProtectedVisibilityAttr () const
 
bool doesSupportDebugInformation () const
 
bool doesSupportExceptionHandling () const
 
ExceptionHandling getExceptionHandlingType () const
 
WinEH::EncodingType getWinEHEncodingType () const
 
void setExceptionsType (ExceptionHandling EH)
 
bool usesCFIForEH () const
 Returns true if the exception handling method for the platform uses call frame information to unwind. More...
 
bool usesWindowsCFI () const
 
bool doesDwarfUseRelocationsAcrossSections () const
 
bool doDwarfFDESymbolsUseAbsDiff () const
 
bool useDwarfRegNumForCFI () const
 
bool useParensForSymbolVariant () const
 
bool supportsExtendedDwarfLocDirective () const
 
void addInitialFrameState (const MCCFIInstruction &Inst)
 
const std::vector< MCCFIInstruction > & getInitialFrameState () const
 
bool useIntegratedAssembler () const
 Return true if assembly (inline or otherwise) should be parsed. More...
 
virtual void setUseIntegratedAssembler (bool Value)
 Set whether assembly (inline or otherwise) should be parsed. More...
 
bool preserveAsmComments () const
 Return true if assembly (inline or otherwise) should be parsed. More...
 
virtual void setPreserveAsmComments (bool Value)
 Set whether assembly (inline or otherwise) should be parsed. More...
 
DebugCompressionType compressDebugSections () const
 
void setCompressDebugSections (DebugCompressionType CompressDebugSections)
 
bool shouldUseLogicalShr () const
 
bool canRelaxRelocations () const
 
void setRelaxELFRelocations (bool V)
 
bool hasMipsExpressions () const
 

Protected Attributes

unsigned CodePointerSize = 4
 Code pointer size in bytes. Default is 4. More...
 
unsigned CalleeSaveStackSlotSize = 4
 Size of the stack slot reserved for callee-saved registers, in bytes. More...
 
bool IsLittleEndian = true
 True if target is little endian. Default is true. More...
 
bool StackGrowsUp = false
 True if target stack grow up. Default is false. More...
 
bool HasSubsectionsViaSymbols = false
 True if this target has the MachO .subsections_via_symbols directive. More...
 
bool HasMachoZeroFillDirective = false
 True if this is a MachO target that supports the macho-specific .zerofill directive for emitting BSS Symbols. More...
 
bool HasMachoTBSSDirective = false
 True if this is a MachO target that supports the macho-specific .tbss directive for emitting thread local BSS Symbols. More...
 
bool HasCOFFAssociativeComdats = false
 True if this is a non-GNU COFF target. More...
 
bool HasCOFFComdatConstants = false
 True if this is a non-GNU COFF target. More...
 
unsigned MaxInstLength = 4
 This is the maximum possible length of an instruction, which is needed to compute the size of an inline asm. More...
 
unsigned MinInstAlignment = 1
 Every possible instruction length is a multiple of this value. More...
 
bool DollarIsPC = false
 The '$' token, when not referencing an identifier or constant, refers to the current PC. More...
 
const charSeparatorString
 This string, if specified, is used to separate instructions from each other when on the same line. More...
 
StringRef CommentString
 This indicates the comment character used by the assembler. More...
 
const charLabelSuffix
 This is appended to emitted labels. Defaults to ":". More...
 
bool UseAssignmentForEHBegin = false
 
bool NeedsLocalForSize = false
 
StringRef PrivateGlobalPrefix
 This prefix is used for globals like constant pool entries that are completely private to the .s file and should not have names in the .o file. More...
 
StringRef PrivateLabelPrefix
 This prefix is used for labels for basic blocks. More...
 
StringRef LinkerPrivateGlobalPrefix
 This prefix is used for symbols that should be passed through the assembler but be removed by the linker. More...
 
const charInlineAsmStart
 If these are nonempty, they contain a directive to emit before and after an inline assembly statement. More...
 
const charInlineAsmEnd
 
const charCode16Directive
 These are assembly directives that tells the assembler to interpret the following instructions differently. More...
 
const charCode32Directive
 
const charCode64Directive
 
unsigned AssemblerDialect = 0
 Which dialect of an assembler variant to use. Defaults to 0. More...
 
bool AllowAtInName = false
 This is true if the assembler allows @ characters in symbol names. More...
 
bool SupportsQuotedNames = true
 If this is true, symbol names with invalid characters will be printed in quotes. More...
 
bool UseDataRegionDirectives = false
 This is true if data region markers should be printed as ".data_region/.end_data_region" directives. More...
 
const charZeroDirective
 This should be set to the directive used to get some number of zero bytes emitted to the current section. More...
 
const charAsciiDirective
 This directive allows emission of an ascii string with the standard C escape characters embedded into it. More...
 
const charAscizDirective
 If not null, this allows for special handling of zero terminated strings on this target. More...
 
const charData8bitsDirective
 These directives are used to output some unit of integer data to the current section. More...
 
const charData16bitsDirective
 
const charData32bitsDirective
 
const charData64bitsDirective
 
const charGPRel64Directive = nullptr
 If non-null, a directive that is used to emit a word which should be relocated as a 64-bit GP-relative offset, e.g. More...
 
const charGPRel32Directive = nullptr
 If non-null, a directive that is used to emit a word which should be relocated as a 32-bit GP-relative offset, e.g. More...
 
const charDTPRel32Directive = nullptr
 If non-null, directives that are used to emit a word/dword which should be relocated as a 32/64-bit DTP/TP-relative offset, e.g. More...
 
const charDTPRel64Directive = nullptr
 
const charTPRel32Directive = nullptr
 
const charTPRel64Directive = nullptr
 
bool SunStyleELFSectionSwitchSyntax = false
 This is true if this target uses "Sun Style" syntax for section switching ("#alloc,#write" etc) instead of the normal ELF syntax (,"a,w") in .section directives. More...
 
bool UsesELFSectionDirectiveForBSS = false
 This is true if this target uses ELF '.section' directive before the '.bss' one. More...
 
bool NeedsDwarfSectionOffsetDirective = false
 
bool AlignmentIsInBytes = true
 If this is true (the default) then the asmprinter emits ".align N" directives, where N is the number of bytes to align to. More...
 
unsigned TextAlignFillValue = 0
 If non-zero, this is used to fill the executable space created as the result of a alignment directive. More...
 
const charGlobalDirective
 This is the directive used to declare a global entity. More...
 
bool SetDirectiveSuppressesReloc = false
 True if the expression .long f - g uses a relocation but it can be suppressed by writing a = f - g .long a. More...
 
bool HasAggressiveSymbolFolding = true
 False if the assembler requires that we use. More...
 
bool COMMDirectiveAlignmentIsInBytes = true
 True is .comm's and .lcomms optional alignment is to be specified in bytes instead of log2(n). More...
 
LCOMM::LCOMMType LCOMMDirectiveAlignmentType = LCOMM::NoAlignment
 Describes if the .lcomm directive for the target supports an alignment argument and how it is interpreted. More...
 
bool HasFunctionAlignment = true
 
bool HasDotTypeDotSizeDirective = true
 True if the target has .type and .size directives, this is true for most ELF targets. More...
 
bool HasSingleParameterDotFile = true
 True if the target has a single parameter .file directive, this is true for ELF targets. More...
 
bool HasIdentDirective = false
 True if the target has a .ident directive, this is true for ELF targets. More...
 
bool HasNoDeadStrip = false
 True if this target supports the MachO .no_dead_strip directive. More...
 
bool HasAltEntry = false
 True if this target supports the MachO .alt_entry directive. More...
 
const charWeakDirective
 Used to declare a global as being a weak symbol. Defaults to ".weak". More...
 
const charWeakRefDirective = nullptr
 This directive, if non-null, is used to declare a global as being a weak undefined symbol. More...
 
bool HasWeakDefDirective = false
 True if we have a directive to declare a global as being a weak defined symbol. More...
 
bool HasWeakDefCanBeHiddenDirective = false
 True if we have a directive to declare a global as being a weak defined symbol that can be hidden (unexported). More...
 
bool HasLinkOnceDirective = false
 True if we have a .linkonce directive. More...
 
MCSymbolAttr HiddenVisibilityAttr = MCSA_Hidden
 This attribute, if not MCSA_Invalid, is used to declare a symbol as having hidden visibility. More...
 
MCSymbolAttr HiddenDeclarationVisibilityAttr = MCSA_Hidden
 This attribute, if not MCSA_Invalid, is used to declare an undefined symbol as having hidden visibility. More...
 
MCSymbolAttr ProtectedVisibilityAttr = MCSA_Protected
 This attribute, if not MCSA_Invalid, is used to declare a symbol as having protected visibility. More...
 
bool SupportsDebugInformation = false
 True if target supports emission of debugging information. More...
 
ExceptionHandling ExceptionsType = ExceptionHandling::None
 Exception handling format for the target. Defaults to None. More...
 
WinEH::EncodingType WinEHEncodingType = WinEH::EncodingType::Invalid
 Windows exception handling data (.pdata) encoding. Defaults to Invalid. More...
 
bool DwarfUsesRelocationsAcrossSections = true
 True if Dwarf2 output generally uses relocations for references to other .debug_* sections. More...
 
bool DwarfFDESymbolsUseAbsDiff = false
 True if DWARF FDE symbol reference relocations should be replaced by an absolute difference. More...
 
bool DwarfRegNumForCFI = false
 True if dwarf register numbers are printed instead of symbolic register names in .cfi_* directives. More...
 
bool UseParensForSymbolVariant = false
 True if target uses parens to indicate the symbol variant instead of . More...
 
bool SupportsExtendedDwarfLocDirective = true
 True if the target supports flags in ".loc" directive, false if only location is allowed. More...
 
std::vector< MCCFIInstructionInitialFrameState
 
bool UseIntegratedAssembler
 Should we use the integrated assembler? The integrated assembler should be enabled by default (by the constructors) when failing to parse a valid piece of assembly (inline or otherwise) is considered a bug. More...
 
bool PreserveAsmComments
 Preserve Comments in assembly. More...
 
DebugCompressionType CompressDebugSections = DebugCompressionType::None
 Compress DWARF debug sections. Defaults to no compression. More...
 
bool UseLogicalShr = true
 True if the integrated assembler should interpret 'a >> b' constant expressions as logical rather than arithmetic. More...
 
bool RelaxELFRelocations = true
 
bool HasMipsExpressions = false
 

Detailed Description

This class is intended to be used as a base class for asm properties and features specific to the target.

Definition at line 56 of file MCAsmInfo.h.

Constructor & Destructor Documentation

◆ MCAsmInfo()

MCAsmInfo::MCAsmInfo ( )
explicit

◆ ~MCAsmInfo()

MCAsmInfo::~MCAsmInfo ( )
virtualdefault

Referenced by MCAsmInfo().

Member Function Documentation

◆ addInitialFrameState()

void llvm::MCAsmInfo::addInitialFrameState ( const MCCFIInstruction Inst)
inline

◆ canRelaxRelocations()

bool llvm::MCAsmInfo::canRelaxRelocations ( ) const
inline

Definition at line 635 of file MCAsmInfo.h.

Referenced by getRelocType32(), and getRelocType64().

◆ compressDebugSections()

DebugCompressionType llvm::MCAsmInfo::compressDebugSections ( ) const
inline

Definition at line 625 of file MCAsmInfo.h.

Referenced by isWeak().

◆ doDwarfFDESymbolsUseAbsDiff()

bool llvm::MCAsmInfo::doDwarfFDESymbolsUseAbsDiff ( ) const
inline

Definition at line 594 of file MCAsmInfo.h.

Referenced by emitFDESymbol().

◆ doesAllowAtInName()

bool llvm::MCAsmInfo::doesAllowAtInName ( ) const
inline

Definition at line 510 of file MCAsmInfo.h.

◆ doesDwarfUseRelocationsAcrossSections()

bool llvm::MCAsmInfo::doesDwarfUseRelocationsAcrossSections ( ) const
inline

◆ doesSetDirectiveSuppressReloc()

bool llvm::MCAsmInfo::doesSetDirectiveSuppressReloc ( ) const
inline

◆ doesSupportDataRegionDirectives()

bool llvm::MCAsmInfo::doesSupportDataRegionDirectives ( ) const
inline

Definition at line 513 of file MCAsmInfo.h.

Referenced by truncateToSize().

◆ doesSupportDebugInformation()

bool llvm::MCAsmInfo::doesSupportDebugInformation ( ) const
inline

Definition at line 564 of file MCAsmInfo.h.

Referenced by llvm::AsmPrinter::doInitialization().

◆ doesSupportExceptionHandling()

bool llvm::MCAsmInfo::doesSupportExceptionHandling ( ) const
inline

Definition at line 566 of file MCAsmInfo.h.

References llvm::None.

◆ getAlignmentIsInBytes()

bool llvm::MCAsmInfo::getAlignmentIsInBytes ( ) const
inline

Definition at line 520 of file MCAsmInfo.h.

◆ getAsciiDirective()

const char* llvm::MCAsmInfo::getAsciiDirective ( ) const
inline

Definition at line 518 of file MCAsmInfo.h.

Referenced by PrintQuotedString().

◆ getAscizDirective()

const char* llvm::MCAsmInfo::getAscizDirective ( ) const
inline

Definition at line 519 of file MCAsmInfo.h.

Referenced by PrintQuotedString().

◆ getAssemblerDialect()

unsigned llvm::MCAsmInfo::getAssemblerDialect ( ) const
inline

◆ getCalleeSaveStackSlotSize()

unsigned llvm::MCAsmInfo::getCalleeSaveStackSlotSize ( ) const
inline

Get the callee-saved register stack slot size in bytes.

Definition at line 400 of file MCAsmInfo.h.

Referenced by getDataAlignmentFactor().

◆ getCode16Directive()

const char* llvm::MCAsmInfo::getCode16Directive ( ) const
inline

Definition at line 506 of file MCAsmInfo.h.

Referenced by truncateToSize().

◆ getCode32Directive()

const char* llvm::MCAsmInfo::getCode32Directive ( ) const
inline

Definition at line 507 of file MCAsmInfo.h.

Referenced by truncateToSize().

◆ getCode64Directive()

const char* llvm::MCAsmInfo::getCode64Directive ( ) const
inline

Definition at line 508 of file MCAsmInfo.h.

Referenced by truncateToSize().

◆ getCodePointerSize()

unsigned llvm::MCAsmInfo::getCodePointerSize ( ) const
inline

◆ getCOMMDirectiveAlignmentIsInBytes()

bool llvm::MCAsmInfo::getCOMMDirectiveAlignmentIsInBytes ( ) const
inline

Definition at line 530 of file MCAsmInfo.h.

Referenced by getPlatformName().

◆ getCommentColumn()

unsigned llvm::MCAsmInfo::getCommentColumn ( ) const
inline

This indicates the column (zero-based) at which asm comments should be printed.

Definition at line 484 of file MCAsmInfo.h.

Referenced by emitComments(), and printDwarfFileDirective().

◆ getCommentString()

StringRef llvm::MCAsmInfo::getCommentString ( ) const
inline

◆ getData16bitsDirective()

const char* llvm::MCAsmInfo::getData16bitsDirective ( ) const
inline

Definition at line 415 of file MCAsmInfo.h.

Referenced by PrintQuotedString().

◆ getData32bitsDirective()

const char* llvm::MCAsmInfo::getData32bitsDirective ( ) const
inline

Definition at line 416 of file MCAsmInfo.h.

Referenced by PrintQuotedString().

◆ getData64bitsDirective()

const char* llvm::MCAsmInfo::getData64bitsDirective ( ) const
inline

Definition at line 417 of file MCAsmInfo.h.

Referenced by PrintQuotedString().

◆ getData8bitsDirective()

const char* llvm::MCAsmInfo::getData8bitsDirective ( ) const
inline

Definition at line 414 of file MCAsmInfo.h.

Referenced by PrintQuotedString().

◆ getDollarIsPC()

bool llvm::MCAsmInfo::getDollarIsPC ( ) const
inline

Definition at line 479 of file MCAsmInfo.h.

◆ getDTPRel32Directive()

const char* llvm::MCAsmInfo::getDTPRel32Directive ( ) const
inline

Definition at line 421 of file MCAsmInfo.h.

Referenced by PrintQuotedString().

◆ getDTPRel64Directive()

const char* llvm::MCAsmInfo::getDTPRel64Directive ( ) const
inline

Definition at line 420 of file MCAsmInfo.h.

Referenced by PrintQuotedString().

◆ getExceptionHandlingType()

ExceptionHandling llvm::MCAsmInfo::getExceptionHandlingType ( ) const
inline

◆ getExprForFDESymbol()

const MCExpr * MCAsmInfo::getExprForFDESymbol ( const MCSymbol Sym,
unsigned  Encoding,
MCStreamer Streamer 
) const
virtual

◆ getExprForPersonalitySymbol()

const MCExpr * MCAsmInfo::getExprForPersonalitySymbol ( const MCSymbol Sym,
unsigned  Encoding,
MCStreamer Streamer 
) const
virtual

◆ getGlobalDirective()

const char* llvm::MCAsmInfo::getGlobalDirective ( ) const
inline

Definition at line 522 of file MCAsmInfo.h.

Referenced by getPlatformName().

◆ getGPRel32Directive()

const char* llvm::MCAsmInfo::getGPRel32Directive ( ) const
inline

Definition at line 419 of file MCAsmInfo.h.

Referenced by PrintQuotedString().

◆ getGPRel64Directive()

const char* llvm::MCAsmInfo::getGPRel64Directive ( ) const
inline

Definition at line 418 of file MCAsmInfo.h.

Referenced by PrintQuotedString().

◆ getHiddenDeclarationVisibilityAttr()

MCSymbolAttr llvm::MCAsmInfo::getHiddenDeclarationVisibilityAttr ( ) const
inline

Definition at line 556 of file MCAsmInfo.h.

Referenced by llvm::AsmPrinter::EmitBasicBlockEnd().

◆ getHiddenVisibilityAttr()

MCSymbolAttr llvm::MCAsmInfo::getHiddenVisibilityAttr ( ) const
inline

Definition at line 554 of file MCAsmInfo.h.

Referenced by llvm::AsmPrinter::EmitBasicBlockEnd().

◆ getInitialFrameState()

const std::vector<MCCFIInstruction>& llvm::MCAsmInfo::getInitialFrameState ( ) const
inline

Definition at line 605 of file MCAsmInfo.h.

Referenced by llvm::MCStreamer::EmitCFIStartProc(), and getCIEVersion().

◆ getInlineAsmEnd()

const char* llvm::MCAsmInfo::getInlineAsmEnd ( ) const
inline

Definition at line 505 of file MCAsmInfo.h.

Referenced by EmitGCCInlineAsmStr().

◆ getInlineAsmStart()

const char* llvm::MCAsmInfo::getInlineAsmStart ( ) const
inline

Definition at line 504 of file MCAsmInfo.h.

Referenced by EmitGCCInlineAsmStr().

◆ getLabelSuffix()

const char* llvm::MCAsmInfo::getLabelSuffix ( ) const
inline

Definition at line 487 of file MCAsmInfo.h.

Referenced by truncateToSize().

◆ getLCOMMDirectiveAlignmentType()

LCOMM::LCOMMType llvm::MCAsmInfo::getLCOMMDirectiveAlignmentType ( ) const
inline

Definition at line 534 of file MCAsmInfo.h.

Referenced by llvm::AsmPrinter::EmitGlobalVariable(), and getPlatformName().

◆ getLinkerPrivateGlobalPrefix()

StringRef llvm::MCAsmInfo::getLinkerPrivateGlobalPrefix ( ) const
inline

Definition at line 498 of file MCAsmInfo.h.

Referenced by llvm::MCContext::createLinkerPrivateTempSymbol().

◆ getMaxInstLength()

unsigned llvm::MCAsmInfo::getMaxInstLength ( ) const
inline

◆ getMinInstAlignment()

unsigned llvm::MCAsmInfo::getMinInstAlignment ( ) const
inline

Definition at line 478 of file MCAsmInfo.h.

Referenced by llvm::MCDwarfLineTableHeader::Emit(), getCIEVersion(), and ScaleAddrDelta().

◆ getNonexecutableStackSection()

virtual MCSection* llvm::MCAsmInfo::getNonexecutableStackSection ( MCContext Ctx) const
inlinevirtual

Targets can implement this method to specify a section to switch to if the translation unit doesn't have any trampolines that require an executable stack.

Definition at line 428 of file MCAsmInfo.h.

References Name, and llvm::ARMBuildAttrs::Section.

Referenced by llvm::AsmPrinter::doFinalization(), and llvm::MCELFStreamer::InitSections().

◆ getPrivateGlobalPrefix()

StringRef llvm::MCAsmInfo::getPrivateGlobalPrefix ( ) const
inline

◆ getPrivateLabelPrefix()

StringRef llvm::MCAsmInfo::getPrivateLabelPrefix ( ) const
inline

Definition at line 492 of file MCAsmInfo.h.

Referenced by llvm::MachineBasicBlock::getSymbol().

◆ getProtectedVisibilityAttr()

MCSymbolAttr llvm::MCAsmInfo::getProtectedVisibilityAttr ( ) const
inline

Definition at line 560 of file MCAsmInfo.h.

Referenced by llvm::AsmPrinter::EmitBasicBlockEnd().

◆ getSeparatorString()

const char* llvm::MCAsmInfo::getSeparatorString ( ) const
inline

◆ getTextAlignFillValue()

unsigned llvm::MCAsmInfo::getTextAlignFillValue ( ) const
inline

Definition at line 521 of file MCAsmInfo.h.

Referenced by parseHexOcta(), and PrintQuotedString().

◆ getTPRel32Directive()

const char* llvm::MCAsmInfo::getTPRel32Directive ( ) const
inline

Definition at line 423 of file MCAsmInfo.h.

Referenced by PrintQuotedString().

◆ getTPRel64Directive()

const char* llvm::MCAsmInfo::getTPRel64Directive ( ) const
inline

Definition at line 422 of file MCAsmInfo.h.

Referenced by PrintQuotedString().

◆ getWeakDirective()

const char* llvm::MCAsmInfo::getWeakDirective ( ) const
inline

Definition at line 544 of file MCAsmInfo.h.

Referenced by getPlatformName().

◆ getWeakRefDirective()

const char* llvm::MCAsmInfo::getWeakRefDirective ( ) const
inline

◆ getWinEHEncodingType()

WinEH::EncodingType llvm::MCAsmInfo::getWinEHEncodingType ( ) const
inline

Definition at line 571 of file MCAsmInfo.h.

Referenced by llvm::AsmPrinter::doInitialization().

◆ getZeroDirective()

const char* llvm::MCAsmInfo::getZeroDirective ( ) const
inline

Definition at line 517 of file MCAsmInfo.h.

Referenced by PrintQuotedString().

◆ hasAggressiveSymbolFolding()

bool llvm::MCAsmInfo::hasAggressiveSymbolFolding ( ) const
inline

Definition at line 528 of file MCAsmInfo.h.

Referenced by forceExpAbs().

◆ hasAltEntry()

bool llvm::MCAsmInfo::hasAltEntry ( ) const
inline

Definition at line 543 of file MCAsmInfo.h.

Referenced by llvm::AsmPrinter::emitGlobalGOTEquivs().

◆ hasCOFFAssociativeComdats()

bool llvm::MCAsmInfo::hasCOFFAssociativeComdats ( ) const
inline

Definition at line 475 of file MCAsmInfo.h.

Referenced by getWinCFISection().

◆ hasCOFFComdatConstants()

bool llvm::MCAsmInfo::hasCOFFComdatConstants ( ) const
inline

◆ hasDotTypeDotSizeDirective()

bool llvm::MCAsmInfo::hasDotTypeDotSizeDirective ( ) const
inline

◆ hasFunctionAlignment()

bool llvm::MCAsmInfo::hasFunctionAlignment ( ) const
inline

Definition at line 538 of file MCAsmInfo.h.

Referenced by llvm::AsmPrinter::EmitDebugThreadLocal().

◆ hasIdentDirective()

bool llvm::MCAsmInfo::hasIdentDirective ( ) const
inline

◆ hasLinkerPrivateGlobalPrefix()

bool llvm::MCAsmInfo::hasLinkerPrivateGlobalPrefix ( ) const
inline

Definition at line 494 of file MCAsmInfo.h.

◆ hasLinkOnceDirective()

bool llvm::MCAsmInfo::hasLinkOnceDirective ( ) const
inline

Definition at line 552 of file MCAsmInfo.h.

Referenced by canBeHidden().

◆ hasMachoTBSSDirective()

bool llvm::MCAsmInfo::hasMachoTBSSDirective ( ) const
inline

Definition at line 474 of file MCAsmInfo.h.

Referenced by llvm::AsmPrinter::EmitGlobalVariable().

◆ hasMachoZeroFillDirective()

bool llvm::MCAsmInfo::hasMachoZeroFillDirective ( ) const
inline

Definition at line 473 of file MCAsmInfo.h.

Referenced by llvm::AsmPrinter::EmitGlobalVariable().

◆ hasMipsExpressions()

bool llvm::MCAsmInfo::hasMipsExpressions ( ) const
inline

Definition at line 637 of file MCAsmInfo.h.

Referenced by llvm::AsmLexer::LexToken().

◆ hasNoDeadStrip()

bool llvm::MCAsmInfo::hasNoDeadStrip ( ) const
inline

Definition at line 542 of file MCAsmInfo.h.

Referenced by llvm::AsmPrinter::EmitSpecialLLVMGlobal(), and getPlatformName().

◆ hasSingleParameterDotFile()

bool llvm::MCAsmInfo::hasSingleParameterDotFile ( ) const
inline

Definition at line 540 of file MCAsmInfo.h.

Referenced by llvm::AsmPrinter::doInitialization(), and PrintQuotedString().

◆ hasSubsectionsViaSymbols()

bool llvm::MCAsmInfo::hasSubsectionsViaSymbols ( ) const
inline

◆ hasWeakDefCanBeHiddenDirective()

bool llvm::MCAsmInfo::hasWeakDefCanBeHiddenDirective ( ) const
inline

Definition at line 548 of file MCAsmInfo.h.

Referenced by canBeHidden().

◆ hasWeakDefDirective()

bool llvm::MCAsmInfo::hasWeakDefDirective ( ) const
inline

Definition at line 546 of file MCAsmInfo.h.

Referenced by canBeHidden().

◆ isLittleEndian()

bool llvm::MCAsmInfo::isLittleEndian ( ) const
inline

◆ isSectionAtomizableBySymbols()

bool MCAsmInfo::isSectionAtomizableBySymbols ( const MCSection Section) const
virtual

True if the section is atomized using the symbols in it.

This is false if the section is not atomized at all (most ELF sections) or if it is atomized based on its contents (MachO' __TEXT,__cstring for example).

Reimplemented in llvm::MCAsmInfoDarwin.

Definition at line 74 of file MCAsmInfo.cpp.

Referenced by canUseLocalRelocation(), canUsePrivateLabel(), llvm::MCAssembler::getAtom(), and getFixupKindLog2Size().

◆ isStackGrowthDirectionUp()

bool llvm::MCAsmInfo::isStackGrowthDirectionUp ( ) const
inline

True if target stack grow up.

Definition at line 408 of file MCAsmInfo.h.

Referenced by getDataAlignmentFactor().

◆ isValidUnquotedName()

bool MCAsmInfo::isValidUnquotedName ( StringRef  Name) const
virtual

Return true if the identifier Name does not need quotes to be syntactically correct.

Definition at line 105 of file MCAsmInfo.cpp.

References C, llvm::StringRef::empty(), and isAcceptableChar().

Referenced by llvm::MCSymbol::print().

◆ needsDwarfSectionOffsetDirective()

bool llvm::MCAsmInfo::needsDwarfSectionOffsetDirective ( ) const
inline

◆ needsLocalForSize()

bool llvm::MCAsmInfo::needsLocalForSize ( ) const
inline

Definition at line 490 of file MCAsmInfo.h.

Referenced by llvm::AsmPrinter::SetupMachineFunction().

◆ preserveAsmComments()

bool llvm::MCAsmInfo::preserveAsmComments ( ) const
inline

Return true if assembly (inline or otherwise) should be parsed.

Definition at line 618 of file MCAsmInfo.h.

◆ setCompressDebugSections()

void llvm::MCAsmInfo::setCompressDebugSections ( DebugCompressionType  CompressDebugSections)
inline

Definition at line 629 of file MCAsmInfo.h.

Referenced by llvm::LLVMTargetMachine::initAsmInfo().

◆ setExceptionsType()

void llvm::MCAsmInfo::setExceptionsType ( ExceptionHandling  EH)
inline

Definition at line 573 of file MCAsmInfo.h.

Referenced by llvm::LLVMTargetMachine::initAsmInfo().

◆ setPreserveAsmComments()

virtual void llvm::MCAsmInfo::setPreserveAsmComments ( bool  Value)
inlinevirtual

Set whether assembly (inline or otherwise) should be parsed.

Definition at line 621 of file MCAsmInfo.h.

Referenced by llvm::LLVMTargetMachine::initAsmInfo().

◆ setRelaxELFRelocations()

void llvm::MCAsmInfo::setRelaxELFRelocations ( bool  V)
inline

Definition at line 636 of file MCAsmInfo.h.

Referenced by llvm::LLVMTargetMachine::initAsmInfo().

◆ setUseIntegratedAssembler()

virtual void llvm::MCAsmInfo::setUseIntegratedAssembler ( bool  Value)
inlinevirtual

Set whether assembly (inline or otherwise) should be parsed.

Reimplemented in llvm::ARMELFMCAsmInfo.

Definition at line 613 of file MCAsmInfo.h.

Referenced by llvm::LLVMTargetMachine::initAsmInfo().

◆ shouldOmitSectionDirective()

bool MCAsmInfo::shouldOmitSectionDirective ( StringRef  SectionName) const
virtual

Return true if the .section directive should be omitted when emitting SectionName.

For example:

shouldOmitSectionDirective(".text")

returns false => .section .text,#alloc,#execinstr returns true => .text

Reimplemented in llvm::NVPTXMCAsmInfo, and llvm::AMDGPUMCAsmInfo.

Definition at line 119 of file MCAsmInfo.cpp.

References usesELFSectionDirectiveForBSS().

Referenced by llvm::AMDGPUMCAsmInfo::shouldOmitSectionDirective(), llvm::MCSectionWasm::ShouldOmitSectionDirective(), and llvm::MCSectionELF::ShouldOmitSectionDirective().

◆ shouldUseLogicalShr()

bool llvm::MCAsmInfo::shouldUseLogicalShr ( ) const
inline

Definition at line 633 of file MCAsmInfo.h.

Referenced by getGNUBinOpPrecedence().

◆ supportsExtendedDwarfLocDirective()

bool llvm::MCAsmInfo::supportsExtendedDwarfLocDirective ( ) const
inline

Definition at line 597 of file MCAsmInfo.h.

Referenced by printDwarfFileDirective().

◆ supportsNameQuoting()

bool llvm::MCAsmInfo::supportsNameQuoting ( ) const
inline

Definition at line 511 of file MCAsmInfo.h.

Referenced by llvm::MCSymbol::print().

◆ useAssignmentForEHBegin()

bool llvm::MCAsmInfo::useAssignmentForEHBegin ( ) const
inline

Definition at line 489 of file MCAsmInfo.h.

Referenced by llvm::AsmPrinter::EmitDebugThreadLocal().

◆ useDwarfRegNumForCFI()

bool llvm::MCAsmInfo::useDwarfRegNumForCFI ( ) const
inline

Definition at line 595 of file MCAsmInfo.h.

Referenced by printDwarfFileDirective().

◆ useIntegratedAssembler()

bool llvm::MCAsmInfo::useIntegratedAssembler ( ) const
inline

Return true if assembly (inline or otherwise) should be parsed.

Definition at line 610 of file MCAsmInfo.h.

Referenced by srcMgrDiagHandler().

◆ useParensForSymbolVariant()

bool llvm::MCAsmInfo::useParensForSymbolVariant ( ) const
inline

Definition at line 596 of file MCAsmInfo.h.

◆ usesCFIForEH()

bool llvm::MCAsmInfo::usesCFIForEH ( ) const
inline

Returns true if the exception handling method for the platform uses call frame information to unwind.

Definition at line 579 of file MCAsmInfo.h.

References llvm::WinEH::ARM, and llvm::DwarfCFI.

Referenced by llvm::DwarfCFIException::beginFunction(), llvm::EHStreamer::computeCallSiteTable(), and llvm::DwarfCFIException::endModule().

◆ usesELFSectionDirectiveForBSS()

bool llvm::MCAsmInfo::usesELFSectionDirectiveForBSS ( ) const
inline

Definition at line 463 of file MCAsmInfo.h.

Referenced by shouldOmitSectionDirective().

◆ usesSunStyleELFSectionSwitchSyntax()

bool llvm::MCAsmInfo::usesSunStyleELFSectionSwitchSyntax ( ) const
inline

Definition at line 459 of file MCAsmInfo.h.

Referenced by llvm::MCSectionELF::PrintSwitchToSection().

◆ usesWindowsCFI()

bool llvm::MCAsmInfo::usesWindowsCFI ( ) const
inline

Member Data Documentation

◆ AlignmentIsInBytes

bool llvm::MCAsmInfo::AlignmentIsInBytes = true
protected

◆ AllowAtInName

bool llvm::MCAsmInfo::AllowAtInName = false
protected

This is true if the assembler allows @ characters in symbol names.

Defaults to false.

Definition at line 157 of file MCAsmInfo.h.

Referenced by llvm::ARCMCAsmInfo::ARCMCAsmInfo(), and llvm::X86MCAsmInfoMicrosoft::X86MCAsmInfoMicrosoft().

◆ AsciiDirective

const char* llvm::MCAsmInfo::AsciiDirective
protected

This directive allows emission of an ascii string with the standard C escape characters embedded into it.

If a target doesn't support this, it can be set to null. Defaults to "\t.ascii\t"

Definition at line 179 of file MCAsmInfo.h.

Referenced by MCAsmInfo(), and llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo().

◆ AscizDirective

const char* llvm::MCAsmInfo::AscizDirective
protected

If not null, this allows for special handling of zero terminated strings on this target.

This is commonly supported as ".asciz". If a target doesn't support this, it can be set to null. Defaults to "\t.asciz\t"

Definition at line 184 of file MCAsmInfo.h.

Referenced by llvm::HexagonMCAsmInfo::HexagonMCAsmInfo(), MCAsmInfo(), llvm::Nios2MCAsmInfo::Nios2MCAsmInfo(), llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo(), and llvm::XCoreMCAsmInfo::XCoreMCAsmInfo().

◆ AssemblerDialect

unsigned llvm::MCAsmInfo::AssemblerDialect = 0
protected

◆ CalleeSaveStackSlotSize

unsigned llvm::MCAsmInfo::CalleeSaveStackSlotSize = 4
protected

◆ Code16Directive

const char* llvm::MCAsmInfo::Code16Directive
protected

These are assembly directives that tells the assembler to interpret the following instructions differently.

Defaults to ".code16", ".code32", ".code64".

Definition at line 148 of file MCAsmInfo.h.

Referenced by llvm::ARMCOFFMCAsmInfoGNU::ARMCOFFMCAsmInfoGNU(), llvm::ARMELFMCAsmInfo::ARMELFMCAsmInfo(), llvm::ARMMCAsmInfoDarwin::ARMMCAsmInfoDarwin(), and MCAsmInfo().

◆ Code32Directive

const char* llvm::MCAsmInfo::Code32Directive
protected

◆ Code64Directive

const char* llvm::MCAsmInfo::Code64Directive
protected

Definition at line 150 of file MCAsmInfo.h.

Referenced by MCAsmInfo().

◆ CodePointerSize

unsigned llvm::MCAsmInfo::CodePointerSize = 4
protected

◆ COMMDirectiveAlignmentIsInBytes

bool llvm::MCAsmInfo::COMMDirectiveAlignmentIsInBytes = true
protected

True is .comm's and .lcomms optional alignment is to be specified in bytes instead of log2(n).

Defaults to true.

Definition at line 267 of file MCAsmInfo.h.

Referenced by llvm::AMDGPUMCAsmInfo::AMDGPUMCAsmInfo(), llvm::MCAsmInfoCOFF::MCAsmInfoCOFF(), llvm::MCAsmInfoDarwin::MCAsmInfoDarwin(), and llvm::WebAssemblyMCAsmInfo::WebAssemblyMCAsmInfo().

◆ CommentString

StringRef llvm::MCAsmInfo::CommentString
protected

◆ CompressDebugSections

DebugCompressionType llvm::MCAsmInfo::CompressDebugSections = DebugCompressionType::None
protected

Compress DWARF debug sections. Defaults to no compression.

Definition at line 377 of file MCAsmInfo.h.

◆ Data16bitsDirective

const char* llvm::MCAsmInfo::Data16bitsDirective
protected

◆ Data32bitsDirective

const char* llvm::MCAsmInfo::Data32bitsDirective
protected

◆ Data64bitsDirective

const char* llvm::MCAsmInfo::Data64bitsDirective
protected

◆ Data8bitsDirective

const char* llvm::MCAsmInfo::Data8bitsDirective
protected

These directives are used to output some unit of integer data to the current section.

If a data directive is set to null, smaller data directives will be used to emit the large sizes. Defaults to "\t.byte\t", "\t.short\t", "\t.long\t", "\t.quad\t"

Definition at line 190 of file MCAsmInfo.h.

Referenced by MCAsmInfo(), llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo(), and llvm::WebAssemblyMCAsmInfo::WebAssemblyMCAsmInfo().

◆ DollarIsPC

bool llvm::MCAsmInfo::DollarIsPC = false
protected

The '$' token, when not referencing an identifier or constant, refers to the current PC.

Defaults to false.

Definition at line 106 of file MCAsmInfo.h.

Referenced by llvm::PPCELFMCAsmInfo::PPCELFMCAsmInfo().

◆ DTPRel32Directive

const char* llvm::MCAsmInfo::DTPRel32Directive = nullptr
protected

If non-null, directives that are used to emit a word/dword which should be relocated as a 32/64-bit DTP/TP-relative offset, e.g.

.dtprelword/ .dtpreldword/.tprelword/.tpreldword on Mips.

Definition at line 208 of file MCAsmInfo.h.

Referenced by llvm::MipsMCAsmInfo::MipsMCAsmInfo().

◆ DTPRel64Directive

const char* llvm::MCAsmInfo::DTPRel64Directive = nullptr
protected

Definition at line 209 of file MCAsmInfo.h.

Referenced by llvm::MipsMCAsmInfo::MipsMCAsmInfo().

◆ DwarfFDESymbolsUseAbsDiff

bool llvm::MCAsmInfo::DwarfFDESymbolsUseAbsDiff = false
protected

True if DWARF FDE symbol reference relocations should be replaced by an absolute difference.

Definition at line 346 of file MCAsmInfo.h.

Referenced by llvm::X86MCAsmInfoDarwin::X86MCAsmInfoDarwin().

◆ DwarfRegNumForCFI

bool llvm::MCAsmInfo::DwarfRegNumForCFI = false
protected

True if dwarf register numbers are printed instead of symbolic register names in .cfi_* directives.

Defaults to false.

Definition at line 350 of file MCAsmInfo.h.

Referenced by llvm::ARCMCAsmInfo::ARCMCAsmInfo(), llvm::ARMCOFFMCAsmInfoGNU::ARMCOFFMCAsmInfoGNU(), llvm::MipsMCAsmInfo::MipsMCAsmInfo(), llvm::Nios2MCAsmInfo::Nios2MCAsmInfo(), llvm::ARMELFMCAsmInfo::setUseIntegratedAssembler(), and llvm::XCoreMCAsmInfo::XCoreMCAsmInfo().

◆ DwarfUsesRelocationsAcrossSections

bool llvm::MCAsmInfo::DwarfUsesRelocationsAcrossSections = true
protected

True if Dwarf2 output generally uses relocations for references to other .debug_* sections.

Definition at line 342 of file MCAsmInfo.h.

Referenced by llvm::MCAsmInfoDarwin::MCAsmInfoDarwin(), and llvm::BPFMCAsmInfo::setDwarfUsesRelocationsAcrossSections().

◆ ExceptionsType

ExceptionHandling llvm::MCAsmInfo::ExceptionsType = ExceptionHandling::None
protected

◆ GlobalDirective

const char* llvm::MCAsmInfo::GlobalDirective
protected

This is the directive used to declare a global entity.

Defaults to ".globl".

Definition at line 241 of file MCAsmInfo.h.

Referenced by MCAsmInfo(), llvm::Nios2MCAsmInfo::Nios2MCAsmInfo(), and llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo().

◆ GPRel32Directive

const char* llvm::MCAsmInfo::GPRel32Directive = nullptr
protected

If non-null, a directive that is used to emit a word which should be relocated as a 32-bit GP-relative offset, e.g.

.gpword on Mips or .gprel32 on Alpha. Defaults to nullptr.

Definition at line 203 of file MCAsmInfo.h.

Referenced by llvm::MipsMCAsmInfo::MipsMCAsmInfo(), and llvm::Nios2MCAsmInfo::Nios2MCAsmInfo().

◆ GPRel64Directive

const char* llvm::MCAsmInfo::GPRel64Directive = nullptr
protected

If non-null, a directive that is used to emit a word which should be relocated as a 64-bit GP-relative offset, e.g.

.gpdword on Mips. Defaults to nullptr.

Definition at line 198 of file MCAsmInfo.h.

Referenced by llvm::MipsMCAsmInfo::MipsMCAsmInfo(), and llvm::Nios2MCAsmInfo::Nios2MCAsmInfo().

◆ HasAggressiveSymbolFolding

bool llvm::MCAsmInfo::HasAggressiveSymbolFolding = true
protected

False if the assembler requires that we use.

Lc = a - b
.long Lc

instead of

.long a - b

Defaults to true.

Definition at line 263 of file MCAsmInfo.h.

Referenced by llvm::AMDGPUMCAsmInfo::AMDGPUMCAsmInfo(), and llvm::MCAsmInfoDarwin::MCAsmInfoDarwin().

◆ HasAltEntry

bool llvm::MCAsmInfo::HasAltEntry = false
protected

True if this target supports the MachO .alt_entry directive.

Defaults to false.

Definition at line 295 of file MCAsmInfo.h.

Referenced by llvm::MCAsmInfoDarwin::MCAsmInfoDarwin().

◆ HasCOFFAssociativeComdats

bool llvm::MCAsmInfo::HasCOFFAssociativeComdats = false
protected

True if this is a non-GNU COFF target.

The COFF port of the GNU linker doesn't handle associative comdats in the way that we would like to use them.

Definition at line 90 of file MCAsmInfo.h.

Referenced by llvm::MCAsmInfoCOFF::MCAsmInfoCOFF(), and llvm::MCAsmInfoGNUCOFF::MCAsmInfoGNUCOFF().

◆ HasCOFFComdatConstants

bool llvm::MCAsmInfo::HasCOFFComdatConstants = false
protected

True if this is a non-GNU COFF target.

For GNU targets, we don't generate constants into comdat sections.

Definition at line 94 of file MCAsmInfo.h.

Referenced by llvm::MCAsmInfoCOFF::MCAsmInfoCOFF(), and llvm::MCAsmInfoGNUCOFF::MCAsmInfoGNUCOFF().

◆ HasDotTypeDotSizeDirective

bool llvm::MCAsmInfo::HasDotTypeDotSizeDirective = true
protected

True if the target has .type and .size directives, this is true for most ELF targets.

Defaults to true.

Definition at line 279 of file MCAsmInfo.h.

Referenced by llvm::BPFMCAsmInfo::BPFMCAsmInfo(), llvm::MCAsmInfoCOFF::MCAsmInfoCOFF(), llvm::MCAsmInfoDarwin::MCAsmInfoDarwin(), and llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo().

◆ HasFunctionAlignment

bool llvm::MCAsmInfo::HasFunctionAlignment = true
protected

Definition at line 275 of file MCAsmInfo.h.

Referenced by llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo().

◆ HasIdentDirective

bool llvm::MCAsmInfo::HasIdentDirective = false
protected

True if the target has a .ident directive, this is true for ELF targets.

Defaults to false.

Definition at line 287 of file MCAsmInfo.h.

Referenced by llvm::AArch64MCAsmInfoELF::AArch64MCAsmInfoELF(), llvm::MCAsmInfoELF::MCAsmInfoELF(), and llvm::MCAsmInfoWasm::MCAsmInfoWasm().

◆ HasLinkOnceDirective

bool llvm::MCAsmInfo::HasLinkOnceDirective = false
protected

True if we have a .linkonce directive.

This is used on cygwin/mingw. Defaults to false.

Definition at line 314 of file MCAsmInfo.h.

Referenced by llvm::MCAsmInfoCOFF::MCAsmInfoCOFF().

◆ HasMachoTBSSDirective

bool llvm::MCAsmInfo::HasMachoTBSSDirective = false
protected

True if this is a MachO target that supports the macho-specific .tbss directive for emitting thread local BSS Symbols.

Default is false.

Definition at line 85 of file MCAsmInfo.h.

Referenced by llvm::MCAsmInfoDarwin::MCAsmInfoDarwin().

◆ HasMachoZeroFillDirective

bool llvm::MCAsmInfo::HasMachoZeroFillDirective = false
protected

True if this is a MachO target that supports the macho-specific .zerofill directive for emitting BSS Symbols.

Default is false.

Definition at line 81 of file MCAsmInfo.h.

Referenced by llvm::MCAsmInfoDarwin::MCAsmInfoDarwin().

◆ HasMipsExpressions

bool llvm::MCAsmInfo::HasMipsExpressions = false
protected

Definition at line 389 of file MCAsmInfo.h.

Referenced by llvm::MipsMCAsmInfo::MipsMCAsmInfo().

◆ HasNoDeadStrip

bool llvm::MCAsmInfo::HasNoDeadStrip = false
protected

True if this target supports the MachO .no_dead_strip directive.

Defaults to false.

Definition at line 291 of file MCAsmInfo.h.

Referenced by llvm::AMDGPUMCAsmInfo::AMDGPUMCAsmInfo(), and llvm::MCAsmInfoDarwin::MCAsmInfoDarwin().

◆ HasSingleParameterDotFile

bool llvm::MCAsmInfo::HasSingleParameterDotFile = true
protected

◆ HasSubsectionsViaSymbols

bool llvm::MCAsmInfo::HasSubsectionsViaSymbols = false
protected

True if this target has the MachO .subsections_via_symbols directive.

Default is false.

Definition at line 77 of file MCAsmInfo.h.

Referenced by llvm::MCAsmInfoDarwin::MCAsmInfoDarwin().

◆ HasWeakDefCanBeHiddenDirective

bool llvm::MCAsmInfo::HasWeakDefCanBeHiddenDirective = false
protected

True if we have a directive to declare a global as being a weak defined symbol that can be hidden (unexported).

Defaults to false.

Definition at line 310 of file MCAsmInfo.h.

Referenced by llvm::MCAsmInfoDarwin::MCAsmInfoDarwin(), llvm::PPCMCAsmInfoDarwin::PPCMCAsmInfoDarwin(), and llvm::X86MCAsmInfoDarwin::X86MCAsmInfoDarwin().

◆ HasWeakDefDirective

bool llvm::MCAsmInfo::HasWeakDefDirective = false
protected

True if we have a directive to declare a global as being a weak defined symbol.

Defaults to false.

Definition at line 306 of file MCAsmInfo.h.

Referenced by llvm::MCAsmInfoDarwin::MCAsmInfoDarwin().

◆ HiddenDeclarationVisibilityAttr

MCSymbolAttr llvm::MCAsmInfo::HiddenDeclarationVisibilityAttr = MCSA_Hidden
protected

This attribute, if not MCSA_Invalid, is used to declare an undefined symbol as having hidden visibility.

Defaults to MCSA_Hidden.

Definition at line 322 of file MCAsmInfo.h.

Referenced by llvm::ARCMCAsmInfo::ARCMCAsmInfo(), llvm::MCAsmInfoCOFF::MCAsmInfoCOFF(), llvm::MCAsmInfoDarwin::MCAsmInfoDarwin(), llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo(), and llvm::XCoreMCAsmInfo::XCoreMCAsmInfo().

◆ HiddenVisibilityAttr

MCSymbolAttr llvm::MCAsmInfo::HiddenVisibilityAttr = MCSA_Hidden
protected

This attribute, if not MCSA_Invalid, is used to declare a symbol as having hidden visibility.

Defaults to MCSA_Hidden.

Definition at line 318 of file MCAsmInfo.h.

Referenced by llvm::ARCMCAsmInfo::ARCMCAsmInfo(), llvm::MCAsmInfoCOFF::MCAsmInfoCOFF(), llvm::MCAsmInfoDarwin::MCAsmInfoDarwin(), llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo(), and llvm::XCoreMCAsmInfo::XCoreMCAsmInfo().

◆ InitialFrameState

std::vector<MCCFIInstruction> llvm::MCAsmInfo::InitialFrameState
protected

Definition at line 362 of file MCAsmInfo.h.

◆ InlineAsmEnd

const char* llvm::MCAsmInfo::InlineAsmEnd
protected

◆ InlineAsmStart

const char* llvm::MCAsmInfo::InlineAsmStart
protected

If these are nonempty, they contain a directive to emit before and after an inline assembly statement.

Defaults to "#APP\n", "#NO_APP\n"

Definition at line 142 of file MCAsmInfo.h.

Referenced by llvm::AMDGPUMCAsmInfo::AMDGPUMCAsmInfo(), llvm::HexagonMCAsmInfo::HexagonMCAsmInfo(), MCAsmInfo(), llvm::MCAsmInfoDarwin::MCAsmInfoDarwin(), and llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo().

◆ IsLittleEndian

bool llvm::MCAsmInfo::IsLittleEndian = true
protected

◆ LabelSuffix

const char* llvm::MCAsmInfo::LabelSuffix
protected

This is appended to emitted labels. Defaults to ":".

Definition at line 117 of file MCAsmInfo.h.

Referenced by MCAsmInfo().

◆ LCOMMDirectiveAlignmentType

LCOMM::LCOMMType llvm::MCAsmInfo::LCOMMDirectiveAlignmentType = LCOMM::NoAlignment
protected

Describes if the .lcomm directive for the target supports an alignment argument and how it is interpreted.

Defaults to NoAlignment.

Definition at line 271 of file MCAsmInfo.h.

Referenced by llvm::HexagonMCAsmInfo::HexagonMCAsmInfo(), llvm::MCAsmInfoCOFF::MCAsmInfoCOFF(), llvm::MCAsmInfoDarwin::MCAsmInfoDarwin(), llvm::PPCELFMCAsmInfo::PPCELFMCAsmInfo(), and llvm::WebAssemblyMCAsmInfo::WebAssemblyMCAsmInfo().

◆ LinkerPrivateGlobalPrefix

StringRef llvm::MCAsmInfo::LinkerPrivateGlobalPrefix
protected

This prefix is used for symbols that should be passed through the assembler but be removed by the linker.

This is 'l' on Darwin, currently used for some ObjC metadata. The default of "" meast that for this system a plain private symbol should be used. Defaults to "".

Definition at line 138 of file MCAsmInfo.h.

Referenced by MCAsmInfo(), and llvm::MCAsmInfoDarwin::MCAsmInfoDarwin().

◆ MaxInstLength

unsigned llvm::MCAsmInfo::MaxInstLength = 4
protected

This is the maximum possible length of an instruction, which is needed to compute the size of an inline asm.

Defaults to 4.

Definition at line 98 of file MCAsmInfo.h.

Referenced by llvm::AMDGPUMCAsmInfo::AMDGPUMCAsmInfo(), llvm::ARMCOFFMCAsmInfoGNU::ARMCOFFMCAsmInfoGNU(), llvm::ARMCOFFMCAsmInfoMicrosoft::ARMCOFFMCAsmInfoMicrosoft(), llvm::ARMELFMCAsmInfo::ARMELFMCAsmInfo(), and llvm::ARMMCAsmInfoDarwin::ARMMCAsmInfoDarwin().

◆ MinInstAlignment

unsigned llvm::MCAsmInfo::MinInstAlignment = 1
protected

Every possible instruction length is a multiple of this value.

Factored out in .debug_frame and .debug_line. Defaults to 1.

Definition at line 102 of file MCAsmInfo.h.

Referenced by llvm::AMDGPUMCAsmInfo::AMDGPUMCAsmInfo(), llvm::BPFMCAsmInfo::BPFMCAsmInfo(), llvm::HexagonMCAsmInfo::HexagonMCAsmInfo(), llvm::LanaiMCAsmInfo::LanaiMCAsmInfo(), and llvm::PPCELFMCAsmInfo::PPCELFMCAsmInfo().

◆ NeedsDwarfSectionOffsetDirective

bool llvm::MCAsmInfo::NeedsDwarfSectionOffsetDirective = false
protected

Definition at line 223 of file MCAsmInfo.h.

Referenced by llvm::MCAsmInfoCOFF::MCAsmInfoCOFF().

◆ NeedsLocalForSize

bool llvm::MCAsmInfo::NeedsLocalForSize = false
protected

Definition at line 123 of file MCAsmInfo.h.

Referenced by llvm::PPCELFMCAsmInfo::PPCELFMCAsmInfo().

◆ PreserveAsmComments

bool llvm::MCAsmInfo::PreserveAsmComments
protected

Preserve Comments in assembly.

Definition at line 374 of file MCAsmInfo.h.

Referenced by MCAsmInfo().

◆ PrivateGlobalPrefix

StringRef llvm::MCAsmInfo::PrivateGlobalPrefix
protected

◆ PrivateLabelPrefix

StringRef llvm::MCAsmInfo::PrivateLabelPrefix
protected

◆ ProtectedVisibilityAttr

MCSymbolAttr llvm::MCAsmInfo::ProtectedVisibilityAttr = MCSA_Protected
protected

This attribute, if not MCSA_Invalid, is used to declare a symbol as having protected visibility.

Defaults to MCSA_Protected

Definition at line 326 of file MCAsmInfo.h.

Referenced by llvm::ARCMCAsmInfo::ARCMCAsmInfo(), llvm::MCAsmInfoCOFF::MCAsmInfoCOFF(), llvm::MCAsmInfoDarwin::MCAsmInfoDarwin(), llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo(), and llvm::XCoreMCAsmInfo::XCoreMCAsmInfo().

◆ RelaxELFRelocations

bool llvm::MCAsmInfo::RelaxELFRelocations = true
protected

Definition at line 385 of file MCAsmInfo.h.

◆ SeparatorString

const char* llvm::MCAsmInfo::SeparatorString
protected

This string, if specified, is used to separate instructions from each other when on the same line.

Defaults to ';'

Definition at line 110 of file MCAsmInfo.h.

Referenced by llvm::AArch64MCAsmInfoDarwin::AArch64MCAsmInfoDarwin(), llvm::AMDGPUMCAsmInfo::AMDGPUMCAsmInfo(), MCAsmInfo(), and llvm::PPCMCAsmInfoDarwin::PPCMCAsmInfoDarwin().

◆ SetDirectiveSuppressesReloc

bool llvm::MCAsmInfo::SetDirectiveSuppressesReloc = false
protected

True if the expression .long f - g uses a relocation but it can be suppressed by writing a = f - g .long a.

Definition at line 248 of file MCAsmInfo.h.

Referenced by llvm::MCAsmInfoDarwin::MCAsmInfoDarwin().

◆ StackGrowsUp

bool llvm::MCAsmInfo::StackGrowsUp = false
protected

True if target stack grow up. Default is false.

Definition at line 73 of file MCAsmInfo.h.

Referenced by llvm::AMDGPUMCAsmInfo::AMDGPUMCAsmInfo().

◆ SunStyleELFSectionSwitchSyntax

bool llvm::MCAsmInfo::SunStyleELFSectionSwitchSyntax = false
protected

This is true if this target uses "Sun Style" syntax for section switching ("#alloc,#write" etc) instead of the normal ELF syntax (,"a,w") in .section directives.

Defaults to false.

Definition at line 216 of file MCAsmInfo.h.

Referenced by llvm::AMDGPUMCAsmInfo::AMDGPUMCAsmInfo(), and llvm::SparcELFMCAsmInfo::SparcELFMCAsmInfo().

◆ SupportsDebugInformation

bool llvm::MCAsmInfo::SupportsDebugInformation = false
protected

◆ SupportsExtendedDwarfLocDirective

bool llvm::MCAsmInfo::SupportsExtendedDwarfLocDirective = true
protected

True if the target supports flags in ".loc" directive, false if only location is allowed.

Definition at line 358 of file MCAsmInfo.h.

Referenced by MCAsmInfo(), and llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo().

◆ SupportsQuotedNames

bool llvm::MCAsmInfo::SupportsQuotedNames = true
protected

If this is true, symbol names with invalid characters will be printed in quotes.

Definition at line 161 of file MCAsmInfo.h.

Referenced by llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo().

◆ TextAlignFillValue

unsigned llvm::MCAsmInfo::TextAlignFillValue = 0
protected

If non-zero, this is used to fill the executable space created as the result of a alignment directive.

Defaults to 0

Definition at line 235 of file MCAsmInfo.h.

Referenced by llvm::X86ELFMCAsmInfo::X86ELFMCAsmInfo(), llvm::X86MCAsmInfoDarwin::X86MCAsmInfoDarwin(), llvm::X86MCAsmInfoGNUCOFF::X86MCAsmInfoGNUCOFF(), and llvm::X86MCAsmInfoMicrosoft::X86MCAsmInfoMicrosoft().

◆ TPRel32Directive

const char* llvm::MCAsmInfo::TPRel32Directive = nullptr
protected

Definition at line 210 of file MCAsmInfo.h.

Referenced by llvm::MipsMCAsmInfo::MipsMCAsmInfo().

◆ TPRel64Directive

const char* llvm::MCAsmInfo::TPRel64Directive = nullptr
protected

Definition at line 211 of file MCAsmInfo.h.

Referenced by llvm::MipsMCAsmInfo::MipsMCAsmInfo().

◆ UseAssignmentForEHBegin

bool llvm::MCAsmInfo::UseAssignmentForEHBegin = false
protected

◆ UseDataRegionDirectives

bool llvm::MCAsmInfo::UseDataRegionDirectives = false
protected

This is true if data region markers should be printed as ".data_region/.end_data_region" directives.

If false, use "$d/$a" labels instead.

Definition at line 166 of file MCAsmInfo.h.

Referenced by llvm::AArch64MCAsmInfoDarwin::AArch64MCAsmInfoDarwin(), llvm::AArch64MCAsmInfoELF::AArch64MCAsmInfoELF(), llvm::ARMMCAsmInfoDarwin::ARMMCAsmInfoDarwin(), llvm::WebAssemblyMCAsmInfo::WebAssemblyMCAsmInfo(), and llvm::X86MCAsmInfoDarwin::X86MCAsmInfoDarwin().

◆ UseIntegratedAssembler

bool llvm::MCAsmInfo::UseIntegratedAssembler
protected

◆ UseLogicalShr

bool llvm::MCAsmInfo::UseLogicalShr = true
protected

True if the integrated assembler should interpret 'a >> b' constant expressions as logical rather than arithmetic.

Definition at line 381 of file MCAsmInfo.h.

Referenced by llvm::HexagonMCAsmInfo::HexagonMCAsmInfo(), and llvm::MCAsmInfoCOFF::MCAsmInfoCOFF().

◆ UseParensForSymbolVariant

bool llvm::MCAsmInfo::UseParensForSymbolVariant = false
protected

True if target uses parens to indicate the symbol variant instead of .

For example, foo(plt) instead of foo. Defaults to false.

Definition at line 354 of file MCAsmInfo.h.

Referenced by llvm::ARMCOFFMCAsmInfoGNU::ARMCOFFMCAsmInfoGNU(), and llvm::ARMELFMCAsmInfo::ARMELFMCAsmInfo().

◆ UsesELFSectionDirectiveForBSS

bool llvm::MCAsmInfo::UsesELFSectionDirectiveForBSS = false
protected

◆ WeakDirective

const char* llvm::MCAsmInfo::WeakDirective
protected

Used to declare a global as being a weak symbol. Defaults to ".weak".

Definition at line 298 of file MCAsmInfo.h.

Referenced by MCAsmInfo(), and llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo().

◆ WeakRefDirective

const char* llvm::MCAsmInfo::WeakRefDirective = nullptr
protected

◆ WinEHEncodingType

WinEH::EncodingType llvm::MCAsmInfo::WinEHEncodingType = WinEH::EncodingType::Invalid
protected

Windows exception handling data (.pdata) encoding. Defaults to Invalid.

Definition at line 338 of file MCAsmInfo.h.

Referenced by llvm::X86MCAsmInfoGNUCOFF::X86MCAsmInfoGNUCOFF(), and llvm::X86MCAsmInfoMicrosoft::X86MCAsmInfoMicrosoft().

◆ ZeroDirective

const char* llvm::MCAsmInfo::ZeroDirective
protected

This should be set to the directive used to get some number of zero bytes emitted to the current section.

Common cases are "\t.zero\t" and "\t.space\t". If this is set to null, the Data*bitsDirective's will be used to emit zero bytes. Defaults to "\t.zero\t"

Definition at line 174 of file MCAsmInfo.h.

Referenced by llvm::ARCMCAsmInfo::ARCMCAsmInfo(), llvm::HexagonMCAsmInfo::HexagonMCAsmInfo(), MCAsmInfo(), llvm::MCAsmInfoDarwin::MCAsmInfoDarwin(), llvm::MipsMCAsmInfo::MipsMCAsmInfo(), llvm::Nios2MCAsmInfo::Nios2MCAsmInfo(), llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo(), llvm::PPCELFMCAsmInfo::PPCELFMCAsmInfo(), llvm::SparcELFMCAsmInfo::SparcELFMCAsmInfo(), llvm::SystemZMCAsmInfo::SystemZMCAsmInfo(), llvm::WebAssemblyMCAsmInfo::WebAssemblyMCAsmInfo(), and llvm::XCoreMCAsmInfo::XCoreMCAsmInfo().


The documentation for this class was generated from the following files: