LLVM  14.0.0git
Public Types | 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 Types

enum  AsmCharLiteralSyntax { ACLS_Unknown, ACLS_SingleQuotePrefix }
 Assembly character literal syntax types. More...
 

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 char * getData8bitsDirective () const
 
const char * getData16bitsDirective () const
 
const char * getData32bitsDirective () const
 
const char * getData64bitsDirective () const
 
bool supportsSignedData () const
 
const char * getGPRel64Directive () const
 
const char * getGPRel32Directive () const
 
const char * getDTPRel64Directive () const
 
const char * getDTPRel32Directive () const
 
const char * getTPRel64Directive () const
 
const char * getTPRel32Directive () 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 isAcceptableChar (char C) const
 Return true if C is an acceptable character inside a symbol name. More...
 
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
 
bool hasVisibilityOnlyWithLinkage () const
 
virtual unsigned getMaxInstLength (const MCSubtargetInfo *STI=nullptr) const
 Returns the maximum possible encoded instruction size in bytes. More...
 
unsigned getMinInstAlignment () const
 
bool getDollarIsPC () const
 
bool getDotIsPC () const
 
bool getStarIsPC () const
 
const char * getSeparatorString () const
 
unsigned getCommentColumn () const
 This indicates the column (zero-based) at which asm comments should be printed. More...
 
StringRef getCommentString () const
 
bool getRestrictCommentStringToStartOfStatement () const
 
bool shouldAllowAdditionalComments () const
 
bool getEmitGNUAsmStartIndentationMarker () const
 
const char * getLabelSuffix () const
 
bool shouldEmitLabelsInUpperCase () const
 
bool useAssignmentForEHBegin () const
 
bool needsLocalForSize () const
 
StringRef getPrivateGlobalPrefix () const
 
StringRef getPrivateLabelPrefix () const
 
bool hasLinkerPrivateGlobalPrefix () const
 
StringRef getLinkerPrivateGlobalPrefix () const
 
const char * getInlineAsmStart () const
 
const char * getInlineAsmEnd () const
 
const char * getCode16Directive () const
 
const char * getCode32Directive () const
 
const char * getCode64Directive () const
 
unsigned getAssemblerDialect () const
 
bool doesAllowAtInName () const
 
bool doesAllowQuestionAtStartOfIdentifier () const
 
bool doesAllowAtAtStartOfIdentifier () const
 
bool doesAllowDollarAtStartOfIdentifier () const
 
bool doesAllowHashAtStartOfIdentifier () const
 
bool supportsNameQuoting () const
 
bool doesSupportDataRegionDirectives () const
 
bool useDotAlignForAlignment () const
 
bool hasLEB128Directives () const
 
const char * getZeroDirective () const
 
bool doesZeroDirectiveSupportNonZeroValue () const
 
const char * getAsciiDirective () const
 
const char * getAscizDirective () const
 
const char * getByteListDirective () const
 
const char * getPlainStringDirective () const
 
AsmCharLiteralSyntax characterLiteralSyntax () const
 
bool getAlignmentIsInBytes () const
 
unsigned getTextAlignFillValue () const
 
const char * getGlobalDirective () const
 
bool doesSetDirectiveSuppressReloc () const
 
bool hasAggressiveSymbolFolding () const
 
bool getCOMMDirectiveAlignmentIsInBytes () const
 
LCOMM::LCOMMType getLCOMMDirectiveAlignmentType () const
 
bool hasBasenameOnlyForFileDirective () const
 
bool hasPairedDoubleQuoteStringConstants () const
 
bool hasFunctionAlignment () const
 
bool hasDotTypeDotSizeDirective () const
 
bool hasSingleParameterDotFile () const
 
bool hasFourStringsDotFile () const
 
bool hasIdentDirective () const
 
bool hasNoDeadStrip () const
 
bool hasAltEntry () const
 
const char * getWeakDirective () const
 
const char * getWeakRefDirective () const
 
bool hasWeakDefDirective () const
 
bool hasWeakDefCanBeHiddenDirective () const
 
bool avoidWeakIfComdat () const
 
MCSymbolAttr getHiddenVisibilityAttr () const
 
MCSymbolAttr getHiddenDeclarationVisibilityAttr () const
 
MCSymbolAttr getProtectedVisibilityAttr () const
 
bool doesSupportDebugInformation () const
 
ExceptionHandling getExceptionHandlingType () const
 
WinEH::EncodingType getWinEHEncodingType () const
 
void setExceptionsType (ExceptionHandling EH)
 
bool doesUseCFIForDebug () const
 
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
 
bool usesDwarfFileAndLocDirectives () const
 
bool needsDwarfSectionSizeInHeader () const
 
void addInitialFrameState (const MCCFIInstruction &Inst)
 
const std::vector< MCCFIInstruction > & getInitialFrameState () const
 
void setBinutilsVersion (std::pair< int, int > Value)
 
bool useIntegratedAssembler () const
 Return true if assembly (inline or otherwise) should be parsed. More...
 
bool parseInlineAsmUsingAsmParser () const
 Return true if target want to use AsmParser to parse inlineasm. More...
 
bool binutilsIsAtLeast (int Major, int Minor) const
 
virtual void setUseIntegratedAssembler (bool Value)
 Set whether assembly (inline or otherwise) should be parsed. More...
 
virtual void setParseInlineAsmUsingAsmParser (bool Value)
 Set whether target want to use AsmParser to parse inlineasm. 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
 
bool needsFunctionDescriptors () const
 
bool shouldUseMotorolaIntegers () 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...
 
bool HasVisibilityOnlyWithLinkage = false
 True if this is an XCOFF target that supports visibility attributes as part of .global, .weak, .extern, and .comm. 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...
 
bool DotIsPC = true
 Allow '. More...
 
bool StarIsPC = false
 Whether the '*' token refers to the current PC. More...
 
const char * SeparatorString
 This string, if specified, is used to separate instructions from each other when on the same line. More...
 
StringRef CommentString
 This indicates the comment string used by the assembler. More...
 
bool RestrictCommentStringToStartOfStatement = false
 This indicates whether the comment string is only accepted as a comment at the beginning of statements. More...
 
bool AllowAdditionalComments = true
 This indicates whether to allow additional "comment strings" to be lexed as a comment. More...
 
bool EmitGNUAsmStartIndentationMarker = true
 Should we emit the '\t' as the starting indentation marker for GNU inline asm statements. More...
 
const char * LabelSuffix
 This is appended to emitted labels. Defaults to ":". More...
 
bool EmitLabelsInUpperCase = false
 Emit labels in purely upper case. Defaults to false. 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 char * InlineAsmStart
 If these are nonempty, they contain a directive to emit before and after an inline assembly statement. More...
 
const char * InlineAsmEnd
 
const char * Code16Directive
 These are assembly directives that tells the assembler to interpret the following instructions differently. More...
 
const char * Code32Directive
 
const char * Code64Directive
 
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 AllowQuestionAtStartOfIdentifier = false
 This is true if the assembler allows the "?" character at the start of of a string to be lexed as an AsmToken::Identifier. More...
 
bool AllowDollarAtStartOfIdentifier = false
 This is true if the assembler allows the "$" character at the start of of a string to be lexed as an AsmToken::Identifier. More...
 
bool AllowAtAtStartOfIdentifier = false
 This is true if the assembler allows the "@" character at the start of a string to be lexed as an AsmToken::Identifier. More...
 
bool AllowHashAtStartOfIdentifier = false
 This is true if the assembler allows the "#" character at the start of a string to be lexed as an AsmToken::Identifier. 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...
 
bool UseDotAlignForAlignment = false
 True if .align is to be used for alignment. More...
 
bool HasLEB128Directives = true
 True if the target supports LEB128 directives. More...
 
const char * ZeroDirective
 This should be set to the directive used to get some number of zero (and non-zero if supported by the directive) bytes emitted to the current section. More...
 
bool ZeroDirectiveSupportsNonZeroValue = true
 This should be set to true if the zero directive supports a value to emit other than zero. More...
 
const char * AsciiDirective
 This directive allows emission of an ascii string with the standard C escape characters embedded into it. More...
 
const char * AscizDirective
 If not null, this allows for special handling of zero terminated strings on this target. More...
 
const char * ByteListDirective = nullptr
 This directive accepts a comma-separated list of bytes for emission as a string of bytes. More...
 
const char * PlainStringDirective = nullptr
 This directive allows emission of a zero-terminated ascii string without the standard C escape characters embedded into it. More...
 
AsmCharLiteralSyntax CharacterLiteralSyntax = ACLS_Unknown
 Form used for character literals in the assembly syntax. More...
 
const char * Data8bitsDirective
 These directives are used to output some unit of integer data to the current section. More...
 
const char * Data16bitsDirective
 
const char * Data32bitsDirective
 
const char * Data64bitsDirective
 
bool SupportsSignedData = true
 True if data directives support signed values. More...
 
const char * GPRel64Directive = 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 char * GPRel32Directive = 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 char * DTPRel32Directive = 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 char * DTPRel64Directive = nullptr
 
const char * TPRel32Directive = nullptr
 
const char * TPRel64Directive = 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 char * GlobalDirective
 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 HasBasenameOnlyForFileDirective = true
 True if the target only has basename for .file directive. More...
 
bool HasPairedDoubleQuoteStringConstants = false
 True if the target represents string constants as mostly raw characters in paired double quotation with paired double quotation marks as the escape mechanism to represent a double quotation mark within the string. 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 HasFourStringsDotFile = false
 True if the target has a four strings .file directive, strings seperated by comma. 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 char * WeakDirective
 Used to declare a global as being a weak symbol. Defaults to ".weak". More...
 
const char * WeakRefDirective = 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 AvoidWeakIfComdat = false
 True if we should mark symbols as global instead of weak, for weak*‍/linkonce*, if the symbol has a comdat. 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...
 
bool UsesCFIForDebug = false
 True if target uses CFI unwind information for debugging purpose when ExceptionsType == ExceptionHandling::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 UsesDwarfFileAndLocDirectives = true
 True if the target supports generating the DWARF line table through using the .loc/.file directives. More...
 
bool DwarfSectionSizeRequired = true
 True if the target needs the DWARF section length in the header (if any) of the DWARF section in the assembly file. 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
 
std::pair< int, intBinutilsVersion = {2, 26}
 
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 ParseInlineAsmUsingAsmParser
 Use AsmParser to parse inlineAsm when UseIntegratedAssembler is not set. 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
 
bool UseMotorolaIntegers = false
 
bool NeedsFunctionDescriptors = 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.

Member Enumeration Documentation

◆ AsmCharLiteralSyntax

Assembly character literal syntax types.

Enumerator
ACLS_Unknown 
ACLS_SingleQuotePrefix 

Unknown; character literals not used by LLVM for this target.

Definition at line 59 of file MCAsmInfo.h.

Constructor & Destructor Documentation

◆ MCAsmInfo()

MCAsmInfo::MCAsmInfo ( )
explicit

◆ ~MCAsmInfo()

MCAsmInfo::~MCAsmInfo ( )
virtualdefault

Member Function Documentation

◆ addInitialFrameState()

void MCAsmInfo::addInitialFrameState ( const MCCFIInstruction Inst)

◆ avoidWeakIfComdat()

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

Definition at line 748 of file MCAsmInfo.h.

References AvoidWeakIfComdat.

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

◆ binutilsIsAtLeast()

bool llvm::MCAsmInfo::binutilsIsAtLeast ( int  Major,
int  Minor 
) const
inline

◆ canRelaxRelocations()

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

Definition at line 853 of file MCAsmInfo.h.

References RelaxELFRelocations.

Referenced by getRelocType32(), and getRelocType64().

◆ characterLiteralSyntax()

AsmCharLiteralSyntax llvm::MCAsmInfo::characterLiteralSyntax ( ) const
inline

Definition at line 706 of file MCAsmInfo.h.

References CharacterLiteralSyntax.

◆ compressDebugSections()

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

Definition at line 843 of file MCAsmInfo.h.

References CompressDebugSections.

◆ doDwarfFDESymbolsUseAbsDiff()

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

Definition at line 788 of file MCAsmInfo.h.

References DwarfFDESymbolsUseAbsDiff.

Referenced by emitFDESymbol().

◆ doesAllowAtAtStartOfIdentifier()

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

Definition at line 677 of file MCAsmInfo.h.

References AllowAtAtStartOfIdentifier.

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

◆ doesAllowAtInName()

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

Definition at line 673 of file MCAsmInfo.h.

References AllowAtInName.

◆ doesAllowDollarAtStartOfIdentifier()

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

Definition at line 680 of file MCAsmInfo.h.

References AllowDollarAtStartOfIdentifier.

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

◆ doesAllowHashAtStartOfIdentifier()

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

Definition at line 683 of file MCAsmInfo.h.

References AllowHashAtStartOfIdentifier.

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

◆ doesAllowQuestionAtStartOfIdentifier()

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

Definition at line 674 of file MCAsmInfo.h.

References AllowQuestionAtStartOfIdentifier.

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

◆ doesDwarfUseRelocationsAcrossSections()

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

◆ doesSetDirectiveSuppressReloc()

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

◆ doesSupportDataRegionDirectives()

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

Definition at line 688 of file MCAsmInfo.h.

References UseDataRegionDirectives.

◆ doesSupportDebugInformation()

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

Definition at line 760 of file MCAsmInfo.h.

References SupportsDebugInformation.

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

◆ doesUseCFIForDebug()

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

Definition at line 769 of file MCAsmInfo.h.

References UsesCFIForDebug.

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

◆ doesZeroDirectiveSupportNonZeroValue()

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

Definition at line 699 of file MCAsmInfo.h.

References ZeroDirectiveSupportsNonZeroValue.

◆ getAlignmentIsInBytes()

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

Definition at line 709 of file MCAsmInfo.h.

References AlignmentIsInBytes.

◆ getAsciiDirective()

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

Definition at line 702 of file MCAsmInfo.h.

References AsciiDirective.

◆ getAscizDirective()

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

Definition at line 703 of file MCAsmInfo.h.

References AscizDirective.

◆ getAssemblerDialect()

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

◆ getByteListDirective()

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

Definition at line 704 of file MCAsmInfo.h.

References ByteListDirective.

◆ getCalleeSaveStackSlotSize()

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

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

Definition at line 540 of file MCAsmInfo.h.

References CalleeSaveStackSlotSize.

Referenced by getDataAlignmentFactor().

◆ getCode16Directive()

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

Definition at line 669 of file MCAsmInfo.h.

References Code16Directive.

◆ getCode32Directive()

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

Definition at line 670 of file MCAsmInfo.h.

References Code32Directive.

◆ getCode64Directive()

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

Definition at line 671 of file MCAsmInfo.h.

References Code64Directive.

◆ getCodePointerSize()

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

◆ getCOMMDirectiveAlignmentIsInBytes()

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

Definition at line 719 of file MCAsmInfo.h.

References COMMDirectiveAlignmentIsInBytes.

◆ getCommentColumn()

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

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

Definition at line 639 of file MCAsmInfo.h.

Referenced by emitComments().

◆ getCommentString()

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

◆ getData16bitsDirective()

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

Definition at line 555 of file MCAsmInfo.h.

References Data16bitsDirective.

◆ getData32bitsDirective()

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

Definition at line 556 of file MCAsmInfo.h.

References Data32bitsDirective.

◆ getData64bitsDirective()

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

Definition at line 557 of file MCAsmInfo.h.

References Data64bitsDirective.

◆ getData8bitsDirective()

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

◆ getDollarIsPC()

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

Definition at line 632 of file MCAsmInfo.h.

References DollarIsPC.

◆ getDotIsPC()

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

Definition at line 633 of file MCAsmInfo.h.

References DotIsPC.

◆ getDTPRel32Directive()

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

Definition at line 562 of file MCAsmInfo.h.

References DTPRel32Directive.

◆ getDTPRel64Directive()

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

Definition at line 561 of file MCAsmInfo.h.

References DTPRel64Directive.

◆ getEmitGNUAsmStartIndentationMarker()

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

Definition at line 646 of file MCAsmInfo.h.

References EmitGNUAsmStartIndentationMarker.

Referenced by EmitGCCInlineAsmStr().

◆ 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 711 of file MCAsmInfo.h.

References GlobalDirective.

◆ getGPRel32Directive()

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

Definition at line 560 of file MCAsmInfo.h.

References GPRel32Directive.

◆ getGPRel64Directive()

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

Definition at line 559 of file MCAsmInfo.h.

References GPRel64Directive.

◆ getHiddenDeclarationVisibilityAttr()

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

Definition at line 752 of file MCAsmInfo.h.

References HiddenDeclarationVisibilityAttr.

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

◆ getHiddenVisibilityAttr()

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

Definition at line 750 of file MCAsmInfo.h.

References HiddenVisibilityAttr.

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

◆ getInitialFrameState()

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

Definition at line 805 of file MCAsmInfo.h.

References InitialFrameState.

Referenced by llvm::MCStreamer::emitCFIStartProc().

◆ getInlineAsmEnd()

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

Definition at line 668 of file MCAsmInfo.h.

References InlineAsmEnd.

◆ getInlineAsmStart()

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

Definition at line 667 of file MCAsmInfo.h.

References InlineAsmStart.

◆ getLabelSuffix()

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

Definition at line 649 of file MCAsmInfo.h.

References LabelSuffix.

◆ getLCOMMDirectiveAlignmentType()

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

Definition at line 723 of file MCAsmInfo.h.

References LCOMMDirectiveAlignmentType.

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

◆ getLinkerPrivateGlobalPrefix()

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

◆ getMaxInstLength()

virtual unsigned llvm::MCAsmInfo::getMaxInstLength ( const MCSubtargetInfo STI = nullptr) const
inlinevirtual

Returns the maximum possible encoded instruction size in bytes.

If STI is null, this should be the maximum size for any subtarget.

Reimplemented in llvm::AMDGPUMCAsmInfo.

Definition at line 627 of file MCAsmInfo.h.

References MaxInstLength.

Referenced by llvm::HexagonInstrInfo::getInlineAsmLength(), and llvm::TargetInstrInfo::getInlineAsmLength().

◆ getMinInstAlignment()

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

◆ 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 569 of file MCAsmInfo.h.

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

◆ getPlainStringDirective()

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

Definition at line 705 of file MCAsmInfo.h.

References PlainStringDirective.

◆ getPrivateGlobalPrefix()

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

◆ getPrivateLabelPrefix()

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

◆ getProtectedVisibilityAttr()

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

Definition at line 756 of file MCAsmInfo.h.

References ProtectedVisibilityAttr.

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

◆ getRestrictCommentStringToStartOfStatement()

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

Definition at line 642 of file MCAsmInfo.h.

References RestrictCommentStringToStartOfStatement.

◆ getSeparatorString()

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

◆ getStarIsPC()

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

Definition at line 634 of file MCAsmInfo.h.

References StarIsPC.

◆ getTextAlignFillValue()

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

Definition at line 710 of file MCAsmInfo.h.

References TextAlignFillValue.

◆ getTPRel32Directive()

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

Definition at line 564 of file MCAsmInfo.h.

References TPRel32Directive.

◆ getTPRel64Directive()

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

Definition at line 563 of file MCAsmInfo.h.

References TPRel64Directive.

◆ getWeakDirective()

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

Definition at line 740 of file MCAsmInfo.h.

References WeakDirective.

◆ getWeakRefDirective()

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

Definition at line 741 of file MCAsmInfo.h.

References WeakRefDirective.

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

◆ getWinEHEncodingType()

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

Definition at line 763 of file MCAsmInfo.h.

References WinEHEncodingType.

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

◆ getZeroDirective()

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

Definition at line 698 of file MCAsmInfo.h.

References ZeroDirective.

◆ hasAggressiveSymbolFolding()

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

Definition at line 717 of file MCAsmInfo.h.

References HasAggressiveSymbolFolding.

◆ hasAltEntry()

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

Definition at line 739 of file MCAsmInfo.h.

References HasAltEntry.

◆ hasBasenameOnlyForFileDirective()

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

Definition at line 727 of file MCAsmInfo.h.

References HasBasenameOnlyForFileDirective.

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

◆ hasCOFFAssociativeComdats()

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

Definition at line 619 of file MCAsmInfo.h.

References HasCOFFAssociativeComdats.

◆ hasCOFFComdatConstants()

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

Definition at line 620 of file MCAsmInfo.h.

References HasCOFFComdatConstants.

◆ hasDotTypeDotSizeDirective()

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

◆ hasFourStringsDotFile()

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

Definition at line 736 of file MCAsmInfo.h.

References HasFourStringsDotFile.

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

◆ hasFunctionAlignment()

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

Definition at line 733 of file MCAsmInfo.h.

References HasFunctionAlignment.

◆ hasIdentDirective()

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

Definition at line 737 of file MCAsmInfo.h.

References HasIdentDirective.

◆ hasLEB128Directives()

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

Definition at line 696 of file MCAsmInfo.h.

References HasLEB128Directives.

Referenced by llvm::EHStreamer::emitExceptionTable().

◆ hasLinkerPrivateGlobalPrefix()

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

Definition at line 657 of file MCAsmInfo.h.

References llvm::StringRef::empty(), and LinkerPrivateGlobalPrefix.

Referenced by getLinkerPrivateGlobalPrefix().

◆ hasMachoTBSSDirective()

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

Definition at line 618 of file MCAsmInfo.h.

References HasMachoTBSSDirective.

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

◆ hasMachoZeroFillDirective()

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

Definition at line 617 of file MCAsmInfo.h.

References HasMachoZeroFillDirective.

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

◆ hasMipsExpressions()

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

Definition at line 855 of file MCAsmInfo.h.

References HasMipsExpressions.

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

◆ hasNoDeadStrip()

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

Definition at line 738 of file MCAsmInfo.h.

References HasNoDeadStrip.

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

◆ hasPairedDoubleQuoteStringConstants()

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

Definition at line 730 of file MCAsmInfo.h.

References HasPairedDoubleQuoteStringConstants.

◆ hasSingleParameterDotFile()

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

Definition at line 735 of file MCAsmInfo.h.

References HasSingleParameterDotFile.

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

◆ hasSubsectionsViaSymbols()

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

◆ hasVisibilityOnlyWithLinkage()

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

Definition at line 621 of file MCAsmInfo.h.

References HasVisibilityOnlyWithLinkage.

◆ hasWeakDefCanBeHiddenDirective()

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

Definition at line 744 of file MCAsmInfo.h.

References HasWeakDefCanBeHiddenDirective.

Referenced by canBeHidden().

◆ hasWeakDefDirective()

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

Definition at line 742 of file MCAsmInfo.h.

References HasWeakDefDirective.

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

◆ isAcceptableChar()

bool MCAsmInfo::isAcceptableChar ( char  C) const
virtual

Return true if C is an acceptable character inside a symbol name.

Reimplemented in llvm::MCAsmInfoXCOFF, and llvm::SystemZMCAsmInfo.

Definition at line 116 of file MCAsmInfo.cpp.

Referenced by llvm::SystemZMCAsmInfo::isAcceptableChar(), and isValidUnquotedName().

◆ isLittleEndian()

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

True if the target is little endian.

Definition at line 545 of file MCAsmInfo.h.

References IsLittleEndian.

Referenced by llvm::ARMTargetStreamer::emitInst(), and llvm::MCStreamer::emitIntValue().

◆ 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 90 of file MCAsmInfo.cpp.

Referenced by canUsePrivateLabel().

◆ isStackGrowthDirectionUp()

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

True if target stack grow up.

Definition at line 548 of file MCAsmInfo.h.

References StackGrowsUp.

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 120 of file MCAsmInfo.cpp.

References isAcceptableChar().

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

◆ needsDwarfSectionOffsetDirective()

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

◆ needsDwarfSectionSizeInHeader()

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

Definition at line 799 of file MCAsmInfo.h.

References DwarfSectionSizeRequired.

◆ needsFunctionDescriptors()

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

Definition at line 856 of file MCAsmInfo.h.

References NeedsFunctionDescriptors.

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

◆ needsLocalForSize()

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

Definition at line 653 of file MCAsmInfo.h.

References NeedsLocalForSize.

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

◆ parseInlineAsmUsingAsmParser()

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

Return true if target want to use AsmParser to parse inlineasm.

Definition at line 817 of file MCAsmInfo.h.

References ParseInlineAsmUsingAsmParser.

◆ preserveAsmComments()

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

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

Definition at line 836 of file MCAsmInfo.h.

References PreserveAsmComments.

◆ setBinutilsVersion()

void llvm::MCAsmInfo::setBinutilsVersion ( std::pair< int, int Value)
inline

Definition at line 809 of file MCAsmInfo.h.

References BinutilsVersion.

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

◆ setCompressDebugSections()

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

Definition at line 847 of file MCAsmInfo.h.

References CompressDebugSections.

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

◆ setExceptionsType()

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

Definition at line 765 of file MCAsmInfo.h.

References ExceptionsType.

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

◆ setParseInlineAsmUsingAsmParser()

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

Set whether target want to use AsmParser to parse inlineasm.

Definition at line 831 of file MCAsmInfo.h.

References ParseInlineAsmUsingAsmParser.

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 839 of file MCAsmInfo.h.

References PreserveAsmComments.

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

◆ setRelaxELFRelocations()

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

Definition at line 854 of file MCAsmInfo.h.

References RelaxELFRelocations.

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 826 of file MCAsmInfo.h.

References UseIntegratedAssembler.

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

◆ shouldAllowAdditionalComments()

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

Definition at line 645 of file MCAsmInfo.h.

References AllowAdditionalComments.

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

◆ shouldEmitLabelsInUpperCase()

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

Definition at line 650 of file MCAsmInfo.h.

References EmitLabelsInUpperCase.

◆ 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 134 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 851 of file MCAsmInfo.h.

References UseLogicalShr.

◆ shouldUseMotorolaIntegers()

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

Definition at line 857 of file MCAsmInfo.h.

References UseMotorolaIntegers.

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

◆ supportsExtendedDwarfLocDirective()

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

Definition at line 791 of file MCAsmInfo.h.

References SupportsExtendedDwarfLocDirective.

◆ supportsNameQuoting()

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

Definition at line 686 of file MCAsmInfo.h.

References SupportsQuotedNames.

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

◆ supportsSignedData()

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

Definition at line 558 of file MCAsmInfo.h.

References SupportsSignedData.

◆ useAssignmentForEHBegin()

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

Definition at line 652 of file MCAsmInfo.h.

References UseAssignmentForEHBegin.

◆ useDotAlignForAlignment()

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

Definition at line 692 of file MCAsmInfo.h.

References UseDotAlignForAlignment.

◆ useDwarfRegNumForCFI()

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

Definition at line 789 of file MCAsmInfo.h.

References DwarfRegNumForCFI.

◆ useIntegratedAssembler()

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

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

Definition at line 814 of file MCAsmInfo.h.

References UseIntegratedAssembler.

Referenced by calcUniqueIDUpdateFlagsAndSize(), llvm::AsmPrinter::emitPatchableFunctionEntries(), selectELFSectionForGlobal(), and selectExplicitSectionGlobal().

◆ useParensForSymbolVariant()

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

Definition at line 790 of file MCAsmInfo.h.

References UseParensForSymbolVariant.

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

◆ 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 773 of file MCAsmInfo.h.

References llvm::ARM, llvm::DwarfCFI, ExceptionsType, and usesWindowsCFI().

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

◆ usesDwarfFileAndLocDirectives()

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

Definition at line 795 of file MCAsmInfo.h.

References UsesDwarfFileAndLocDirectives.

◆ usesELFSectionDirectiveForBSS()

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

Definition at line 607 of file MCAsmInfo.h.

References UsesELFSectionDirectiveForBSS.

Referenced by shouldOmitSectionDirective().

◆ usesSunStyleELFSectionSwitchSyntax()

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

Definition at line 603 of file MCAsmInfo.h.

References SunStyleELFSectionSwitchSyntax.

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

◆ usesWindowsCFI()

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

Member Data Documentation

◆ AlignmentIsInBytes

bool llvm::MCAsmInfo::AlignmentIsInBytes = true
protected

◆ AllowAdditionalComments

bool llvm::MCAsmInfo::AllowAdditionalComments = true
protected

This indicates whether to allow additional "comment strings" to be lexed as a comment.

Setting this attribute to true, will ensure that C-style line comments (// ..), C-style block comments (/* .. *‍/), and "#" are all treated as comments in addition to the string specified by the CommentString attribute. Default is true.

Definition at line 147 of file MCAsmInfo.h.

Referenced by shouldAllowAdditionalComments(), llvm::SystemZMCAsmInfo::SystemZMCAsmInfo(), and llvm::X86MCAsmInfoMicrosoftMASM::X86MCAsmInfoMicrosoftMASM().

◆ AllowAtAtStartOfIdentifier

bool llvm::MCAsmInfo::AllowAtAtStartOfIdentifier = false
protected

This is true if the assembler allows the "@" character at the start of a string to be lexed as an AsmToken::Identifier.

If the AsmLexer determines that the string can be lexed as a possible comment, setting this option will have no effect, and the string will still be lexed as a comment.

Definition at line 218 of file MCAsmInfo.h.

Referenced by doesAllowAtAtStartOfIdentifier(), llvm::SystemZMCAsmInfo::SystemZMCAsmInfo(), and llvm::X86MCAsmInfoMicrosoftMASM::X86MCAsmInfoMicrosoftMASM().

◆ AllowAtInName

bool llvm::MCAsmInfo::AllowAtInName = false
protected

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

Defaults to false.

Definition at line 197 of file MCAsmInfo.h.

Referenced by llvm::ARCMCAsmInfo::ARCMCAsmInfo(), doesAllowAtInName(), llvm::SystemZMCAsmInfo::SystemZMCAsmInfo(), llvm::X86MCAsmInfoGNUCOFF::X86MCAsmInfoGNUCOFF(), and llvm::X86MCAsmInfoMicrosoft::X86MCAsmInfoMicrosoft().

◆ AllowDollarAtStartOfIdentifier

bool llvm::MCAsmInfo::AllowDollarAtStartOfIdentifier = false
protected

This is true if the assembler allows the "$" character at the start of of a string to be lexed as an AsmToken::Identifier.

If the AsmLexer determines that the string can be lexed as a possible comment, setting this option will have no effect, and the string will still be lexed as a comment.

Definition at line 211 of file MCAsmInfo.h.

Referenced by doesAllowDollarAtStartOfIdentifier(), llvm::SystemZMCAsmInfo::SystemZMCAsmInfo(), and llvm::X86MCAsmInfoMicrosoftMASM::X86MCAsmInfoMicrosoftMASM().

◆ AllowHashAtStartOfIdentifier

bool llvm::MCAsmInfo::AllowHashAtStartOfIdentifier = false
protected

This is true if the assembler allows the "#" character at the start of a string to be lexed as an AsmToken::Identifier.

If the AsmLexer determines that the string can be lexed as a possible comment, setting this option will have no effect, and the string will still be lexed as a comment.

Definition at line 225 of file MCAsmInfo.h.

Referenced by doesAllowHashAtStartOfIdentifier(), and llvm::SystemZMCAsmInfo::SystemZMCAsmInfo().

◆ AllowQuestionAtStartOfIdentifier

bool llvm::MCAsmInfo::AllowQuestionAtStartOfIdentifier = false
protected

This is true if the assembler allows the "?" character at the start of of a string to be lexed as an AsmToken::Identifier.

If the AsmLexer determines that the string can be lexed as a possible comment, setting this option will have no effect, and the string will still be lexed as a comment.

Definition at line 204 of file MCAsmInfo.h.

Referenced by doesAllowQuestionAtStartOfIdentifier(), and llvm::X86MCAsmInfoMicrosoftMASM::X86MCAsmInfoMicrosoftMASM().

◆ 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 259 of file MCAsmInfo.h.

Referenced by getAsciiDirective(), MCAsmInfo(), llvm::MCAsmInfoXCOFF::MCAsmInfoXCOFF(), 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 264 of file MCAsmInfo.h.

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

◆ AssemblerDialect

unsigned llvm::MCAsmInfo::AssemblerDialect = 0
protected

◆ AvoidWeakIfComdat

bool llvm::MCAsmInfo::AvoidWeakIfComdat = false
protected

True if we should mark symbols as global instead of weak, for weak*‍/linkonce*, if the symbol has a comdat.

Defaults to false.

Definition at line 427 of file MCAsmInfo.h.

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

◆ BinutilsVersion

std::pair<int, int> llvm::MCAsmInfo::BinutilsVersion = {2, 26}
protected

Definition at line 495 of file MCAsmInfo.h.

Referenced by binutilsIsAtLeast(), and setBinutilsVersion().

◆ ByteListDirective

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

This directive accepts a comma-separated list of bytes for emission as a string of bytes.

For targets that do not support this, it shall be set to null. Defaults to null.

Definition at line 269 of file MCAsmInfo.h.

Referenced by getByteListDirective(), and llvm::MCAsmInfoXCOFF::MCAsmInfoXCOFF().

◆ CalleeSaveStackSlotSize

unsigned llvm::MCAsmInfo::CalleeSaveStackSlotSize = 4
protected

◆ CharacterLiteralSyntax

AsmCharLiteralSyntax llvm::MCAsmInfo::CharacterLiteralSyntax = ACLS_Unknown
protected

Form used for character literals in the assembly syntax.

Useful for producing strings as byte lists. If a target does not use or support this, it shall be set to ACLS_Unknown. Defaults to ACLS_Unknown.

Definition at line 279 of file MCAsmInfo.h.

Referenced by characterLiteralSyntax(), and llvm::MCAsmInfoXCOFF::MCAsmInfoXCOFF().

◆ 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 188 of file MCAsmInfo.h.

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

◆ Code32Directive

const char* llvm::MCAsmInfo::Code32Directive
protected

◆ Code64Directive

const char* llvm::MCAsmInfo::Code64Directive
protected

Definition at line 190 of file MCAsmInfo.h.

Referenced by getCode64Directive(), and 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 365 of file MCAsmInfo.h.

Referenced by llvm::AMDGPUMCAsmInfo::AMDGPUMCAsmInfo(), getCOMMDirectiveAlignmentIsInBytes(), llvm::MCAsmInfoCOFF::MCAsmInfoCOFF(), llvm::MCAsmInfoDarwin::MCAsmInfoDarwin(), llvm::MCAsmInfoXCOFF::MCAsmInfoXCOFF(), 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 511 of file MCAsmInfo.h.

Referenced by compressDebugSections(), and setCompressDebugSections().

◆ 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 285 of file MCAsmInfo.h.

Referenced by getData8bitsDirective(), MCAsmInfo(), llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo(), llvm::VEELFMCAsmInfo::VEELFMCAsmInfo(), 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 119 of file MCAsmInfo.h.

Referenced by getDollarIsPC(), llvm::PPCELFMCAsmInfo::PPCELFMCAsmInfo(), llvm::PPCXCOFFMCAsmInfo::PPCXCOFFMCAsmInfo(), and llvm::X86MCAsmInfoMicrosoftMASM::X86MCAsmInfoMicrosoftMASM().

◆ DotIsPC

bool llvm::MCAsmInfo::DotIsPC = true
protected

Allow '.

' token, when not referencing an identifier or constant, to refer to the current PC. Defaults to true.

Definition at line 123 of file MCAsmInfo.h.

Referenced by getDotIsPC(), and llvm::SystemZMCAsmInfo::SystemZMCAsmInfo().

◆ 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 306 of file MCAsmInfo.h.

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

◆ DTPRel64Directive

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

Definition at line 307 of file MCAsmInfo.h.

Referenced by getDTPRel64Directive(), and 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 463 of file MCAsmInfo.h.

Referenced by doDwarfFDESymbolsUseAbsDiff(), and llvm::X86MCAsmInfoDarwin::X86MCAsmInfoDarwin().

◆ DwarfRegNumForCFI

bool llvm::MCAsmInfo::DwarfRegNumForCFI = false
protected

◆ DwarfSectionSizeRequired

bool llvm::MCAsmInfo::DwarfSectionSizeRequired = true
protected

True if the target needs the DWARF section length in the header (if any) of the DWARF section in the assembly file.

Defaults to true.

Definition at line 471 of file MCAsmInfo.h.

Referenced by llvm::MCAsmInfoXCOFF::MCAsmInfoXCOFF(), and needsDwarfSectionSizeInHeader().

◆ DwarfUsesRelocationsAcrossSections

bool llvm::MCAsmInfo::DwarfUsesRelocationsAcrossSections = true
protected

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

Definition at line 459 of file MCAsmInfo.h.

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

◆ EmitGNUAsmStartIndentationMarker

bool llvm::MCAsmInfo::EmitGNUAsmStartIndentationMarker = true
protected

Should we emit the '\t' as the starting indentation marker for GNU inline asm statements.

Defaults to true.

Definition at line 151 of file MCAsmInfo.h.

Referenced by getEmitGNUAsmStartIndentationMarker(), and llvm::SystemZMCAsmInfo::SystemZMCAsmInfo().

◆ EmitLabelsInUpperCase

bool llvm::MCAsmInfo::EmitLabelsInUpperCase = false
protected

Emit labels in purely upper case. Defaults to false.

Definition at line 157 of file MCAsmInfo.h.

Referenced by shouldEmitLabelsInUpperCase(), and llvm::SystemZMCAsmInfo::SystemZMCAsmInfo().

◆ 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 339 of file MCAsmInfo.h.

Referenced by getGlobalDirective(), MCAsmInfo(), 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 301 of file MCAsmInfo.h.

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

◆ 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 296 of file MCAsmInfo.h.

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

◆ 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 361 of file MCAsmInfo.h.

Referenced by llvm::AMDGPUMCAsmInfo::AMDGPUMCAsmInfo(), hasAggressiveSymbolFolding(), 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 407 of file MCAsmInfo.h.

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

◆ HasBasenameOnlyForFileDirective

bool llvm::MCAsmInfo::HasBasenameOnlyForFileDirective = true
protected

True if the target only has basename for .file directive.

False if the target also needs the directory along with the basename. Defaults to true.

Definition at line 373 of file MCAsmInfo.h.

Referenced by hasBasenameOnlyForFileDirective(), and llvm::MCAsmInfoXCOFF::MCAsmInfoXCOFF().

◆ 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 99 of file MCAsmInfo.h.

Referenced by hasCOFFAssociativeComdats(), 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 103 of file MCAsmInfo.h.

Referenced by hasCOFFComdatConstants(), 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 387 of file MCAsmInfo.h.

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

◆ HasFourStringsDotFile

bool llvm::MCAsmInfo::HasFourStringsDotFile = false
protected

True if the target has a four strings .file directive, strings seperated by comma.

Defaults to false.

Definition at line 395 of file MCAsmInfo.h.

Referenced by hasFourStringsDotFile(), and llvm::MCAsmInfoXCOFF::MCAsmInfoXCOFF().

◆ HasFunctionAlignment

bool llvm::MCAsmInfo::HasFunctionAlignment = true
protected

Definition at line 383 of file MCAsmInfo.h.

Referenced by hasFunctionAlignment(), and 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 399 of file MCAsmInfo.h.

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

◆ HasLEB128Directives

bool llvm::MCAsmInfo::HasLEB128Directives = true
protected

True if the target supports LEB128 directives.

Definition at line 241 of file MCAsmInfo.h.

Referenced by hasLEB128Directives(), MCAsmInfo(), and llvm::MCAsmInfoXCOFF::MCAsmInfoXCOFF().

◆ 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 94 of file MCAsmInfo.h.

Referenced by hasMachoTBSSDirective(), and 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 90 of file MCAsmInfo.h.

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

◆ HasMipsExpressions

bool llvm::MCAsmInfo::HasMipsExpressions = false
protected

Definition at line 523 of file MCAsmInfo.h.

Referenced by hasMipsExpressions(), and 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 403 of file MCAsmInfo.h.

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

◆ HasPairedDoubleQuoteStringConstants

bool llvm::MCAsmInfo::HasPairedDoubleQuoteStringConstants = false
protected

True if the target represents string constants as mostly raw characters in paired double quotation with paired double quotation marks as the escape mechanism to represent a double quotation mark within the string.

Defaults to false.

Definition at line 379 of file MCAsmInfo.h.

Referenced by hasPairedDoubleQuoteStringConstants(), and llvm::MCAsmInfoXCOFF::MCAsmInfoXCOFF().

◆ 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 86 of file MCAsmInfo.h.

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

◆ HasVisibilityOnlyWithLinkage

bool llvm::MCAsmInfo::HasVisibilityOnlyWithLinkage = false
protected

True if this is an XCOFF target that supports visibility attributes as part of .global, .weak, .extern, and .comm.

Default is false.

Definition at line 107 of file MCAsmInfo.h.

Referenced by hasVisibilityOnlyWithLinkage(), and llvm::MCAsmInfoXCOFF::MCAsmInfoXCOFF().

◆ 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 422 of file MCAsmInfo.h.

Referenced by hasWeakDefCanBeHiddenDirective(), llvm::MCAsmInfoDarwin::MCAsmInfoDarwin(), 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 418 of file MCAsmInfo.h.

Referenced by hasWeakDefDirective(), and 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 435 of file MCAsmInfo.h.

Referenced by llvm::ARCMCAsmInfo::ARCMCAsmInfo(), getHiddenDeclarationVisibilityAttr(), 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 431 of file MCAsmInfo.h.

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

◆ InitialFrameState

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

Definition at line 487 of file MCAsmInfo.h.

Referenced by addInitialFrameState(), and getInitialFrameState().

◆ 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 182 of file MCAsmInfo.h.

Referenced by llvm::AMDGPUMCAsmInfo::AMDGPUMCAsmInfo(), getInlineAsmStart(), 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 154 of file MCAsmInfo.h.

Referenced by getLabelSuffix(), and 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 369 of file MCAsmInfo.h.

Referenced by getLCOMMDirectiveAlignmentType(), llvm::HexagonMCAsmInfo::HexagonMCAsmInfo(), llvm::MCAsmInfoCOFF::MCAsmInfoCOFF(), llvm::MCAsmInfoDarwin::MCAsmInfoDarwin(), llvm::MCAsmInfoXCOFF::MCAsmInfoXCOFF(), 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 178 of file MCAsmInfo.h.

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

◆ MaxInstLength

unsigned llvm::MCAsmInfo::MaxInstLength = 4
protected

◆ MinInstAlignment

unsigned llvm::MCAsmInfo::MinInstAlignment = 1
protected

◆ NeedsDwarfSectionOffsetDirective

bool llvm::MCAsmInfo::NeedsDwarfSectionOffsetDirective = false
protected

◆ NeedsFunctionDescriptors

bool llvm::MCAsmInfo::NeedsFunctionDescriptors = false
protected

Definition at line 529 of file MCAsmInfo.h.

Referenced by llvm::MCAsmInfoXCOFF::MCAsmInfoXCOFF(), and needsFunctionDescriptors().

◆ NeedsLocalForSize

bool llvm::MCAsmInfo::NeedsLocalForSize = false
protected

Definition at line 163 of file MCAsmInfo.h.

Referenced by needsLocalForSize(), and llvm::PPCELFMCAsmInfo::PPCELFMCAsmInfo().

◆ ParseInlineAsmUsingAsmParser

bool llvm::MCAsmInfo::ParseInlineAsmUsingAsmParser
protected

Use AsmParser to parse inlineAsm when UseIntegratedAssembler is not set.

Definition at line 505 of file MCAsmInfo.h.

Referenced by MCAsmInfo(), llvm::MCAsmInfoXCOFF::MCAsmInfoXCOFF(), parseInlineAsmUsingAsmParser(), and setParseInlineAsmUsingAsmParser().

◆ PlainStringDirective

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

This directive allows emission of a zero-terminated ascii string without the standard C escape characters embedded into it.

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

Definition at line 274 of file MCAsmInfo.h.

Referenced by getPlainStringDirective(), and llvm::MCAsmInfoXCOFF::MCAsmInfoXCOFF().

◆ PreserveAsmComments

bool llvm::MCAsmInfo::PreserveAsmComments
protected

Preserve Comments in assembly.

Definition at line 508 of file MCAsmInfo.h.

Referenced by MCAsmInfo(), preserveAsmComments(), and setPreserveAsmComments().

◆ 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 439 of file MCAsmInfo.h.

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

◆ RelaxELFRelocations

bool llvm::MCAsmInfo::RelaxELFRelocations = true
protected

Definition at line 519 of file MCAsmInfo.h.

Referenced by canRelaxRelocations(), and setRelaxELFRelocations().

◆ RestrictCommentStringToStartOfStatement

bool llvm::MCAsmInfo::RestrictCommentStringToStartOfStatement = false
protected

This indicates whether the comment string is only accepted as a comment at the beginning of statements.

Defaults to false.

Definition at line 139 of file MCAsmInfo.h.

Referenced by getRestrictCommentStringToStartOfStatement(), and llvm::SystemZMCAsmInfo::SystemZMCAsmInfo().

◆ 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 131 of file MCAsmInfo.h.

Referenced by llvm::AArch64MCAsmInfoDarwin::AArch64MCAsmInfoDarwin(), llvm::AMDGPUMCAsmInfo::AMDGPUMCAsmInfo(), getSeparatorString(), MCAsmInfo(), llvm::MSP430MCAsmInfo::MSP430MCAsmInfo(), and llvm::X86MCAsmInfoMicrosoftMASM::X86MCAsmInfoMicrosoftMASM().

◆ 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 346 of file MCAsmInfo.h.

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

◆ StackGrowsUp

bool llvm::MCAsmInfo::StackGrowsUp = false
protected

True if target stack grow up. Default is false.

Definition at line 82 of file MCAsmInfo.h.

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

◆ StarIsPC

bool llvm::MCAsmInfo::StarIsPC = false
protected

Whether the '*' token refers to the current PC.

This is used for the HLASM dialect.

Definition at line 127 of file MCAsmInfo.h.

Referenced by getStarIsPC(), and llvm::SystemZMCAsmInfo::SystemZMCAsmInfo().

◆ 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 314 of file MCAsmInfo.h.

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

◆ SupportsDebugInformation

bool llvm::MCAsmInfo::SupportsDebugInformation = false
protected

True if target supports emission of debugging information.

Defaults to false.

Definition at line 445 of file MCAsmInfo.h.

Referenced by llvm::AArch64MCAsmInfoDarwin::AArch64MCAsmInfoDarwin(), llvm::AArch64MCAsmInfoELF::AArch64MCAsmInfoELF(), llvm::AArch64MCAsmInfoGNUCOFF::AArch64MCAsmInfoGNUCOFF(), llvm::AArch64MCAsmInfoMicrosoftCOFF::AArch64MCAsmInfoMicrosoftCOFF(), llvm::AMDGPUMCAsmInfo::AMDGPUMCAsmInfo(), llvm::ARCMCAsmInfo::ARCMCAsmInfo(), llvm::ARMCOFFMCAsmInfoGNU::ARMCOFFMCAsmInfoGNU(), llvm::ARMCOFFMCAsmInfoMicrosoft::ARMCOFFMCAsmInfoMicrosoft(), llvm::ARMELFMCAsmInfo::ARMELFMCAsmInfo(), llvm::ARMMCAsmInfoDarwin::ARMMCAsmInfoDarwin(), llvm::AVRMCAsmInfo::AVRMCAsmInfo(), llvm::BPFMCAsmInfo::BPFMCAsmInfo(), llvm::CSKYMCAsmInfo::CSKYMCAsmInfo(), doesSupportDebugInformation(), llvm::HexagonMCAsmInfo::HexagonMCAsmInfo(), llvm::LanaiMCAsmInfo::LanaiMCAsmInfo(), llvm::M68kELFMCAsmInfo::M68kELFMCAsmInfo(), llvm::MCAsmInfoCOFF::MCAsmInfoCOFF(), llvm::MipsMCAsmInfo::MipsMCAsmInfo(), llvm::MSP430MCAsmInfo::MSP430MCAsmInfo(), llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo(), llvm::PPCELFMCAsmInfo::PPCELFMCAsmInfo(), llvm::PPCXCOFFMCAsmInfo::PPCXCOFFMCAsmInfo(), llvm::RISCVMCAsmInfo::RISCVMCAsmInfo(), llvm::SparcELFMCAsmInfo::SparcELFMCAsmInfo(), llvm::SystemZMCAsmInfo::SystemZMCAsmInfo(), llvm::VEELFMCAsmInfo::VEELFMCAsmInfo(), llvm::WebAssemblyMCAsmInfo::WebAssemblyMCAsmInfo(), llvm::X86ELFMCAsmInfo::X86ELFMCAsmInfo(), llvm::X86MCAsmInfoDarwin::X86MCAsmInfoDarwin(), and llvm::XCoreMCAsmInfo::XCoreMCAsmInfo().

◆ 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 483 of file MCAsmInfo.h.

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

◆ SupportsQuotedNames

bool llvm::MCAsmInfo::SupportsQuotedNames = true
protected

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

Definition at line 229 of file MCAsmInfo.h.

Referenced by llvm::MCAsmInfoXCOFF::MCAsmInfoXCOFF(), llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo(), and supportsNameQuoting().

◆ SupportsSignedData

bool llvm::MCAsmInfo::SupportsSignedData = true
protected

True if data directives support signed values.

Definition at line 291 of file MCAsmInfo.h.

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

◆ 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 333 of file MCAsmInfo.h.

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

◆ TPRel32Directive

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

Definition at line 308 of file MCAsmInfo.h.

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

◆ TPRel64Directive

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

Definition at line 309 of file MCAsmInfo.h.

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

◆ UseAssignmentForEHBegin

bool llvm::MCAsmInfo::UseAssignmentForEHBegin = false
protected

Definition at line 160 of file MCAsmInfo.h.

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

◆ 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 234 of file MCAsmInfo.h.

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

◆ UseDotAlignForAlignment

bool llvm::MCAsmInfo::UseDotAlignForAlignment = false
protected

True if .align is to be used for alignment.

Only power-of-two alignment is supported.

Definition at line 238 of file MCAsmInfo.h.

Referenced by llvm::MCAsmInfoXCOFF::MCAsmInfoXCOFF(), and useDotAlignForAlignment().

◆ UseIntegratedAssembler

bool llvm::MCAsmInfo::UseIntegratedAssembler
protected

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.

It may then be overridden after construction (see LLVMTargetMachine::initAsmInfo()).

Definition at line 502 of file MCAsmInfo.h.

Referenced by llvm::AMDGPUMCAsmInfo::AMDGPUMCAsmInfo(), llvm::BPFMCAsmInfo::BPFMCAsmInfo(), llvm::HexagonMCAsmInfo::HexagonMCAsmInfo(), MCAsmInfo(), llvm::MCAsmInfoXCOFF::MCAsmInfoXCOFF(), llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo(), llvm::ARMELFMCAsmInfo::setUseIntegratedAssembler(), setUseIntegratedAssembler(), useIntegratedAssembler(), llvm::VEELFMCAsmInfo::VEELFMCAsmInfo(), and llvm::XCoreMCAsmInfo::XCoreMCAsmInfo().

◆ 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 515 of file MCAsmInfo.h.

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

◆ UseMotorolaIntegers

bool llvm::MCAsmInfo::UseMotorolaIntegers = false
protected

◆ 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@plt. Defaults to false.

Definition at line 479 of file MCAsmInfo.h.

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

◆ UsesCFIForDebug

bool llvm::MCAsmInfo::UsesCFIForDebug = false
protected

True if target uses CFI unwind information for debugging purpose when ExceptionsType == ExceptionHandling::None.

Definition at line 452 of file MCAsmInfo.h.

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

◆ UsesDwarfFileAndLocDirectives

bool llvm::MCAsmInfo::UsesDwarfFileAndLocDirectives = true
protected

True if the target supports generating the DWARF line table through using the .loc/.file directives.

Defaults to true.

Definition at line 467 of file MCAsmInfo.h.

Referenced by llvm::MCAsmInfoXCOFF::MCAsmInfoXCOFF(), and usesDwarfFileAndLocDirectives().

◆ 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 410 of file MCAsmInfo.h.

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

◆ WeakRefDirective

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

◆ WinEHEncodingType

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

◆ ZeroDirective

const char* llvm::MCAsmInfo::ZeroDirective
protected

◆ ZeroDirectiveSupportsNonZeroValue

bool llvm::MCAsmInfo::ZeroDirectiveSupportsNonZeroValue = true
protected

This should be set to true if the zero directive supports a value to emit other than zero.

If this is set to false, the Data*bitsDirective's will be used to emit these bytes. Defaults to true.

Definition at line 254 of file MCAsmInfo.h.

Referenced by doesZeroDirectiveSupportNonZeroValue(), and llvm::MCAsmInfoXCOFF::MCAsmInfoXCOFF().


The documentation for this class was generated from the following files:
a
=0.0 ? 0.0 :(a > 0.0 ? 1.0 :-1.0) a
Definition: README.txt:489
b
the resulting code requires compare and branches when and if the revised code is with conditional branches instead of More there is a byte word extend before each where there should be only and the condition codes are not remembered when the same two values are compared twice More LSR enhancements i8 and i32 load store addressing modes are identical int b
Definition: README.txt:418