LLVM 24.0.0git
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:
[legend]

Public Types

enum  AsmCharLiteralSyntax { ACLS_Unknown , ACLS_SingleQuotePrefix }
 Assembly character literal syntax types. More...
using AtSpecifierKind = uint16_t
 Type for at specifiers. Currently, 16 bits is enough.

Public Member Functions

 MCAsmInfo (const MCTargetOptions &Options)
virtual ~MCAsmInfo ()
 MCAsmInfo (MCAsmInfo const &)=delete
MCAsmInfo & operator= (MCAsmInfo const &)=delete
const MCTargetOptions & getTargetOptions () const
unsigned getCodePointerSize () const
 Get the code pointer size in bytes.
unsigned getCalleeSaveStackSlotSize () const
 Get the callee-saved register stack slot size in bytes.
bool isLittleEndian () const
 True if the target is little endian.
bool isStackGrowthDirectionUp () const
 True if target stack grow up.
bool hasSubsectionsViaSymbols () const
const char * getData8bitsDirective () const
const char * getData16bitsDirective () const
const char * getData32bitsDirective () const
const char * getData64bitsDirective () const
bool supportsSignedData () const
virtual MCSection * getStackSection (MCContext &Ctx, bool Exec) const
 Targets can implement this method to specify a section to switch to depending on whether the translation unit has any trampolines that require an executable stack.
virtual const MCExpr * getExprForPersonalitySymbol (const MCSymbol *Sym, unsigned Encoding, MCStreamer &Streamer) const
const MCExpr * getExprForFDESymbol (const MCSymbol *Sym, unsigned Encoding, MCStreamer &Streamer) const
bool isAcceptableChar (char C) const
 Return true if C is an acceptable character inside a symbol name.
bool isValidUnquotedName (StringRef Name) const
 Return true if the identifier Name does not need quotes to be syntactically correct.
llvm::DenseSet< llvm::CachedHashStringRef > & getReservedIdentifiers ()
const llvm::DenseSet< llvm::CachedHashStringRef > & getReservedIdentifiers () const
virtual void printSwitchToSection (const MCSection &, uint32_t Subsection, const Triple &, raw_ostream &) const
virtual bool shouldOmitSectionDirective (StringRef SectionName) const
 Return true if the .section directive should be omitted when emitting SectionName.
virtual bool useCodeAlign (const MCSection &Sec) const
bool usesSunStyleELFSectionSwitchSyntax () const
bool usesELFSectionDirectiveForBSS () const
bool needsDwarfSectionOffsetDirective () const
bool isAIX () const
bool isHLASM () const
bool isMachO () const
bool hasCOFFAssociativeComdats () const
bool hasCOFFComdatConstants () const
virtual unsigned getMaxInstLength (const MCSubtargetInfo *STI=nullptr) const
 Returns the maximum possible encoded instruction size in bytes.
unsigned getMinInstAlignment () const
bool getDollarIsPC () const
const char * getSeparatorString () const
unsigned getCommentColumn () const
void setCommentColumn (unsigned Col)
StringRef getCommentString () const
bool shouldAllowAdditionalComments () const
const char * getLabelSuffix () const
bool usesSetToEquateSymbol () const
bool useAssignmentForEHBegin () const
bool needsLocalForSize () const
StringRef getInternalSymbolPrefix () const
bool hasLinkerPrivateGlobalPrefix () const
StringRef getLinkerPrivateGlobalPrefix () const
const char * getInlineAsmStart () const
const char * getInlineAsmEnd () const
unsigned getAssemblerDialect () const
unsigned getOutputAssemblerDialect () const
bool doesAllowAtInName () const
void setAllowAtInName (bool V)
bool doesAllowQuestionAtStartOfIdentifier () const
bool doesAllowAtAtStartOfIdentifier () const
bool doesAllowDollarAtStartOfIdentifier () const
bool supportsNameQuoting () const
bool doesSupportDataRegionDirectives () const
bool hasLEB128Directives () const
bool useFullRegisterNames () const
void setFullRegisterNames (bool V)
bool hasAddrsigDirective () const
const char * getZeroDirective () const
const char * getAsciiDirective () const
const char * getAscizDirective () const
AsmCharLiteralSyntax characterLiteralSyntax () const
bool getAlignmentIsInBytes () const
unsigned getTextAlignFillValue () const
const char * getGlobalDirective () const
bool doesSetDirectiveSuppressReloc () const
bool getCOMMDirectiveAlignmentIsInBytes () const
LCOMM::LCOMMType getLCOMMDirectiveAlignmentType () const
bool hasFunctionAlignment () const
bool hasPreferredAlignment () const
bool hasDotTypeDotSizeDirective () const
bool hasSingleParameterDotFile () const
bool hasIdentDirective () const
bool hasNoDeadStrip () const
const char * getWeakDirective () const
const char * getWeakRefDirective () const
bool hasWeakDefCanBeHiddenDirective () const
bool avoidWeakIfComdat () const
MCSymbolAttr getHiddenVisibilityAttr () const
MCSymbolAttr getExportedVisibilityAttr () const
MCSymbolAttr getHiddenDeclarationVisibilityAttr () const
MCSymbolAttr getProtectedVisibilityAttr () const
bool doesSupportDebugInformation () const
WinEH::EncodingType getWinEHEncodingType () const
bool usesCFIWithoutEH (ExceptionHandling EH) const
bool usesCFIForEH (ExceptionHandling EH) const
 Returns true if the exception handling method EH uses call frame information to unwind.
bool usesWindowsCFI () const
 Returns true if the object format describes unwind information with Windows SEH unwind opcodes (.seh_* directives, .pdata and .xdata).
bool usesPerInvokeEHLabels (ExceptionHandling EH) const
 Returns true if the exception tables reference the per-invoke EH labels emitted around invokes.
bool doesDwarfUseRelocationsAcrossSections () const
bool doDwarfFDESymbolsUseAbsDiff () const
bool useDwarfRegNumForCFI () const
bool useAtForSpecifier () const
bool useParensForSpecifier () const
bool supportsExtendedDwarfLocDirective () const
bool enableDwarfFileDirectoryDefault () 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.
bool parseInlineAsmUsingAsmParser () const
 Return true if target want to use AsmParser to parse inlineasm.
bool binutilsIsAtLeast (int Major, int Minor) const
virtual void setUseIntegratedAssembler (bool Value)
 Set whether assembly (inline or otherwise) should be parsed.
void setParseInlineAsmUsingAsmParser (bool Value)
 Set whether target want to use AsmParser to parse inlineasm.
bool preserveAsmComments () const
 Return true if assembly (inline or otherwise) should be parsed.
void setPreserveAsmComments (bool Value)
 Set whether assembly (inline or otherwise) should be parsed.
bool shouldUseLogicalShr () const
bool shouldUseMotorolaIntegers () const
StringRef getSpecifierName (uint32_t S) const
std::optional< uint32_t > getSpecifierForName (StringRef Name) const
void printExpr (raw_ostream &, const MCExpr &) const
virtual void printSpecifierExpr (raw_ostream &, const MCSpecifierExpr &) const
virtual bool evaluateAsRelocatableImpl (const MCSpecifierExpr &, MCValue &Res, const MCAssembler *Asm) const
virtual bool usesCompInstByteOrder (const MCSubtargetInfo &STI) const
 True if the instruction is stored in multiple halfwords, with the high-order half appearing first in memory regardless of target endianness, to distinguish it from instructions occupying only one halfword.

Protected Member Functions

void initializeAtSpecifiers (EnumStrings< AtSpecifierKind, 1 >)

Protected Attributes

unsigned CodePointerSize = 4
 Code pointer size in bytes. Default is 4.
unsigned CalleeSaveStackSlotSize = 4
 Size of the stack slot reserved for callee-saved registers, in bytes.
bool IsLittleEndian = true
 True if target is little endian. Default is true.
bool StackGrowsUp = false
 True if target stack grow up. Default is false.
bool HasSubsectionsViaSymbols = false
 True if this target has the MachO .subsections_via_symbols directive.
bool HasCOFFAssociativeComdats = false
 True if this is a non-GNU COFF target.
bool HasCOFFComdatConstants = false
 True if this is a non-GNU COFF target.
bool IsAIX = false
bool IsHLASM = false
unsigned MaxInstLength = 4
 This is the maximum possible length of an instruction, which is needed to compute the size of an inline asm.
unsigned MinInstAlignment = 1
 Every possible instruction length is a multiple of this value.
bool DollarIsPC = false
 The '$' token, when not referencing an identifier or constant, refers to the current PC.
const char * SeparatorString = ";"
 This string, if specified, is used to separate instructions from each other when on the same line.
StringRef CommentString = "#"
 This indicates the comment string used by the assembler.
bool AllowAdditionalComments = true
 This indicates whether to allow additional "comment strings" to be lexed as a comment.
const char * LabelSuffix = ":"
 This is appended to emitted labels. Defaults to ":".
bool UsesSetToEquateSymbol = false
 Use .set instead of = to equate a symbol to an expression.
bool UseAssignmentForEHBegin = false
bool NeedsLocalForSize = false
StringRef InternalSymbolPrefix = "L"
 For internal use by compiler and assembler, not meant to be visible externally.
StringRef LinkerPrivateGlobalPrefix = ""
 This prefix is used for symbols that should be passed through the assembler but be removed by the linker.
const char * InlineAsmStart = "APP"
 If these are nonempty, they contain a directive to emit before and after an inline assembly statement.
const char * InlineAsmEnd = "NO_APP"
unsigned AssemblerDialect = 0
 Which dialect of an assembler variant to use. Defaults to 0.
bool AllowAtInName = false
 This is true if the assembler allows @ characters in symbol names.
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.
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.
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.
bool SupportsQuotedNames = true
 If this is true, symbol names with invalid characters will be printed in quotes.
bool UseDataRegionDirectives = false
 This is true if data region markers should be printed as ".data_region/.end_data_region" directives.
bool HasLEB128Directives = true
 True if the target supports LEB128 directives.
bool PPCUseFullRegisterNames = false
 True if full register names are printed.
bool HasAddrsigDirective = true
 True if the target supports the .addrsig directive.
const char * ZeroDirective = "\t.zero\t"
 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.
const char * AsciiDirective = "\t.ascii\t"
 This directive allows emission of an ascii string with the standard C escape characters embedded into it.
const char * AscizDirective = "\t.asciz\t"
 If not null, this allows for special handling of zero terminated strings on this target.
AsmCharLiteralSyntax CharacterLiteralSyntax = ACLS_Unknown
 Form used for character literals in the assembly syntax.
const char * Data8bitsDirective = "\t.byte\t"
 These directives are used to output some unit of integer data to the current section.
const char * Data16bitsDirective = "\t.short\t"
const char * Data32bitsDirective = "\t.long\t"
const char * Data64bitsDirective = "\t.quad\t"
bool SupportsSignedData = true
 True if data directives support signed values.
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.
bool UsesELFSectionDirectiveForBSS = false
 This is true if this target uses ELF '.section' directive before the '.bss' one.
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.
unsigned TextAlignFillValue = 0
 If non-zero, this is used to fill the executable space created as the result of a alignment directive.
const char * GlobalDirective = "\t.globl\t"
 This is the directive used to declare a global entity.
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.
bool COMMDirectiveAlignmentIsInBytes = true
 True is .comm's and .lcomms optional alignment is to be specified in bytes instead of log2(n).
LCOMM::LCOMMType LCOMMDirectiveAlignmentType = LCOMM::NoAlignment
 Describes if the .lcomm directive for the target supports an alignment argument and how it is interpreted.
bool HasFunctionAlignment = true
bool HasPreferredAlignment = false
bool HasDotTypeDotSizeDirective = true
 True if the target has .type and .size directives, this is true for most ELF targets.
bool HasSingleParameterDotFile = true
 True if the target has a single parameter .file directive, this is true for ELF targets.
bool HasIdentDirective = false
 True if the target has a .ident directive, this is true for ELF targets.
bool HasNoDeadStrip = false
 True if this target supports the MachO .no_dead_strip directive.
const char * WeakDirective = "\t.weak\t"
 Used to declare a global as being a weak symbol. Defaults to ".weak".
const char * WeakRefDirective = nullptr
 This directive, if non-null, is used to declare a global as being a weak undefined symbol.
bool HasWeakDefCanBeHiddenDirective = false
 True if we have a directive to declare a global as being a weak defined symbol that can be hidden (unexported).
bool AvoidWeakIfComdat = false
 True if we should mark symbols as global instead of weak, for weak*‍/linkonce*, if the symbol has a comdat.
MCSymbolAttr HiddenVisibilityAttr = MCSA_Hidden
 This attribute, if not MCSA_Invalid, is used to declare a symbol as having hidden visibility.
MCSymbolAttr ExportedVisibilityAttr = MCSA_Exported
 This attribute, if not MCSA_Invalid, is used to declare a symbol as having exported visibility.
MCSymbolAttr HiddenDeclarationVisibilityAttr = MCSA_Hidden
 This attribute, if not MCSA_Invalid, is used to declare an undefined symbol as having hidden visibility.
MCSymbolAttr ProtectedVisibilityAttr = MCSA_Protected
 This attribute, if not MCSA_Invalid, is used to declare a symbol as having protected visibility.
bool SupportsDebugInformation = false
 True if target supports emission of debugging information.
bool UsesCFIWithoutEH = false
 True if target uses CFI unwind information for other purposes than EH (debugging / sanitizers) when the exception model is ExceptionHandling::None.
WinEH::EncodingType WinEHEncodingType = WinEH::EncodingType::Invalid
 Windows exception handling data (.pdata) encoding. Defaults to Invalid.
bool DwarfUsesRelocationsAcrossSections = true
 True if Dwarf2 output generally uses relocations for references to other .debug_* sections.
bool DwarfFDESymbolsUseAbsDiff = false
 True if DWARF FDE symbol reference relocations should be replaced by an absolute difference.
uint16_t DwarfFDERelSymbolSpec = 0
 The optional specifier to use for the relative FDE symbol references.
bool EnableDwarfFileDirectoryDefault = true
 True if DWARF ‘.file directory’ directive syntax is used by default.
bool DwarfRegNumForCFI = false
 True if dwarf register numbers are printed instead of symbolic register names in .cfi_* directives.
bool UseAtForSpecifier = false
 True if target uses @ (expr@specifier) for relocation specifiers.
bool UseParensForSpecifier = false
 (ARM-specific) Uses parens for relocation specifier in data directives, e.g.
bool SupportsExtendedDwarfLocDirective = true
 True if the target supports flags in ".loc" directive, false if only location is allowed.
std::vector< MCCFIInstruction > InitialFrameState
std::pair< int, int > BinutilsVersion = {2, 26}
bool UseIntegratedAssembler = true
 Should we use the integrated assembler?
bool ParseInlineAsmUsingAsmParser = false
 Use AsmParser to parse inlineAsm when UseIntegratedAssembler is not set.
bool PreserveAsmComments = true
 Preserve Comments in assembly.
unsigned CommentColumn = 40
 The column (zero-based) at which asm comments should be printed.
bool UseLogicalShr = true
 True if the integrated assembler should interpret 'a >> b' constant expressions as logical rather than arithmetic.
bool UseMotorolaIntegers = false
llvm::DenseMap< AtSpecifierKind, StringRef > AtSpecifierToName
llvm::StringMap< AtSpecifierKind > NameToAtSpecifier
llvm::DenseSet< llvm::CachedHashStringRef > ReservedIdentifiers
const MCTargetOptions & TargetOptions

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

Member Typedef Documentation

◆ AtSpecifierKind

Type for at specifiers. Currently, 16 bits is enough.

Definition at line 78 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 70 of file MCAsmInfo.h.

Constructor & Destructor Documentation

◆ MCAsmInfo() [1/2]

◆ ~MCAsmInfo()

MCAsmInfo::~MCAsmInfo ( )
virtualdefault

◆ MCAsmInfo() [2/2]

llvm::MCAsmInfo::MCAsmInfo ( MCAsmInfo const & )
delete

References MCAsmInfo().

Member Function Documentation

◆ addInitialFrameState()

◆ avoidWeakIfComdat()

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

Definition at line 643 of file MCAsmInfo.h.

References AvoidWeakIfComdat.

◆ binutilsIsAtLeast()

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

Definition at line 731 of file MCAsmInfo.h.

References BinutilsVersion.

◆ characterLiteralSyntax()

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

Definition at line 611 of file MCAsmInfo.h.

References CharacterLiteralSyntax.

◆ doDwarfFDESymbolsUseAbsDiff()

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

Definition at line 701 of file MCAsmInfo.h.

References DwarfFDESymbolsUseAbsDiff.

Referenced by emitFDESymbol().

◆ doesAllowAtAtStartOfIdentifier()

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

Definition at line 589 of file MCAsmInfo.h.

References AllowAtAtStartOfIdentifier.

◆ doesAllowAtInName()

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

Definition at line 584 of file MCAsmInfo.h.

References AllowAtInName.

Referenced by isAcceptableChar().

◆ doesAllowDollarAtStartOfIdentifier()

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

Definition at line 592 of file MCAsmInfo.h.

References AllowDollarAtStartOfIdentifier.

◆ doesAllowQuestionAtStartOfIdentifier()

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

Definition at line 586 of file MCAsmInfo.h.

References AllowQuestionAtStartOfIdentifier.

◆ doesDwarfUseRelocationsAcrossSections()

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

Definition at line 697 of file MCAsmInfo.h.

References DwarfUsesRelocationsAcrossSections.

Referenced by llvm::MCGenDwarfInfo::Emit().

◆ doesSetDirectiveSuppressReloc()

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

Definition at line 618 of file MCAsmInfo.h.

References SetDirectiveSuppressesReloc.

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

◆ doesSupportDataRegionDirectives()

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

Definition at line 597 of file MCAsmInfo.h.

References UseDataRegionDirectives.

◆ doesSupportDebugInformation()

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

Definition at line 657 of file MCAsmInfo.h.

References SupportsDebugInformation.

◆ enableDwarfFileDirectoryDefault()

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

Definition at line 709 of file MCAsmInfo.h.

References EnableDwarfFileDirectoryDefault.

◆ evaluateAsRelocatableImpl()

◆ getAlignmentIsInBytes()

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

Definition at line 614 of file MCAsmInfo.h.

References AlignmentIsInBytes.

◆ getAsciiDirective()

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

Definition at line 609 of file MCAsmInfo.h.

References AsciiDirective.

◆ getAscizDirective()

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

Definition at line 610 of file MCAsmInfo.h.

References AscizDirective.

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

References CalleeSaveStackSlotSize.

Referenced by getDataAlignmentFactor().

◆ getCodePointerSize()

◆ getCOMMDirectiveAlignmentIsInBytes()

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

Definition at line 622 of file MCAsmInfo.h.

References COMMDirectiveAlignmentIsInBytes.

◆ getCommentColumn()

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

Definition at line 554 of file MCAsmInfo.h.

References CommentColumn.

Referenced by emitComments().

◆ getCommentString()

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

◆ getData16bitsDirective()

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

Definition at line 474 of file MCAsmInfo.h.

References Data16bitsDirective.

◆ getData32bitsDirective()

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

Definition at line 475 of file MCAsmInfo.h.

References Data32bitsDirective.

◆ getData64bitsDirective()

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

Definition at line 476 of file MCAsmInfo.h.

References Data64bitsDirective.

◆ getData8bitsDirective()

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

◆ getDollarIsPC()

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

Definition at line 551 of file MCAsmInfo.h.

References DollarIsPC.

◆ getExportedVisibilityAttr()

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

Definition at line 647 of file MCAsmInfo.h.

References ExportedVisibilityAttr.

◆ getExprForFDESymbol()

◆ getExprForPersonalitySymbol()

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

Reimplemented in llvm::AArch64MCAsmInfoDarwin, and llvm::X86_64MCAsmInfoDarwin.

Definition at line 44 of file MCAsmInfo.cpp.

References getExprForFDESymbol(), and Streamer.

Referenced by EmitPersonality().

◆ getGlobalDirective()

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

Definition at line 616 of file MCAsmInfo.h.

References GlobalDirective.

◆ getHiddenDeclarationVisibilityAttr()

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

Definition at line 649 of file MCAsmInfo.h.

References HiddenDeclarationVisibilityAttr.

◆ getHiddenVisibilityAttr()

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

Definition at line 645 of file MCAsmInfo.h.

References HiddenVisibilityAttr.

◆ getInitialFrameState()

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

Definition at line 715 of file MCAsmInfo.h.

References InitialFrameState.

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

◆ getInlineAsmEnd()

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

Definition at line 577 of file MCAsmInfo.h.

References InlineAsmEnd.

◆ getInlineAsmStart()

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

Definition at line 576 of file MCAsmInfo.h.

References InlineAsmStart.

◆ getInternalSymbolPrefix()

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

Definition at line 564 of file MCAsmInfo.h.

References InternalSymbolPrefix.

Referenced by getLinkerPrivateGlobalPrefix(), and llvm::MCResourceInfo::getSymbol().

◆ getLabelSuffix()

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

Definition at line 559 of file MCAsmInfo.h.

References LabelSuffix.

◆ getLCOMMDirectiveAlignmentType()

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

Definition at line 626 of file MCAsmInfo.h.

References LCOMMDirectiveAlignmentType.

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

References MaxInstLength.

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

◆ getMinInstAlignment()

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

Definition at line 550 of file MCAsmInfo.h.

References MinInstAlignment.

Referenced by llvm::MCDwarfLineTableHeader::Emit().

◆ getOutputAssemblerDialect()

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

◆ getProtectedVisibilityAttr()

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

Definition at line 653 of file MCAsmInfo.h.

References ProtectedVisibilityAttr.

◆ getReservedIdentifiers() [1/2]

llvm::DenseSet< llvm::CachedHashStringRef > & llvm::MCAsmInfo::getReservedIdentifiers ( )
inline

Definition at line 500 of file MCAsmInfo.h.

References ReservedIdentifiers.

Referenced by isValidUnquotedName(), and populateReservedIdentifiers().

◆ getReservedIdentifiers() [2/2]

const llvm::DenseSet< llvm::CachedHashStringRef > & llvm::MCAsmInfo::getReservedIdentifiers ( ) const
inline

Definition at line 504 of file MCAsmInfo.h.

References ReservedIdentifiers.

◆ getSeparatorString()

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

◆ getSpecifierForName()

std::optional< uint32_t > MCAsmInfo::getSpecifierForName ( StringRef Name) const

Definition at line 129 of file MCAsmInfo.cpp.

References NameToAtSpecifier.

◆ getSpecifierName()

◆ getStackSection()

virtual MCSection * llvm::MCAsmInfo::getStackSection ( MCContext & Ctx,
bool Exec ) const
inlinevirtual

Targets can implement this method to specify a section to switch to depending on whether the translation unit has any trampolines that require an executable stack.

Reimplemented in llvm::BPFMCAsmInfo.

Definition at line 482 of file MCAsmInfo.h.

◆ getTargetOptions()

const MCTargetOptions & llvm::MCAsmInfo::getTargetOptions ( ) const
inline

Definition at line 452 of file MCAsmInfo.h.

References TargetOptions.

◆ getTextAlignFillValue()

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

Definition at line 615 of file MCAsmInfo.h.

References TextAlignFillValue.

◆ getWeakDirective()

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

Definition at line 636 of file MCAsmInfo.h.

References WeakDirective.

◆ getWeakRefDirective()

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

Definition at line 637 of file MCAsmInfo.h.

References WeakRefDirective.

◆ getWinEHEncodingType()

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

Definition at line 659 of file MCAsmInfo.h.

References WinEHEncodingType.

◆ getZeroDirective()

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

Definition at line 608 of file MCAsmInfo.h.

References ZeroDirective.

◆ hasAddrsigDirective()

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

Definition at line 606 of file MCAsmInfo.h.

References HasAddrsigDirective.

◆ hasCOFFAssociativeComdats()

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

Definition at line 541 of file MCAsmInfo.h.

References HasCOFFAssociativeComdats.

◆ hasCOFFComdatConstants()

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

Definition at line 542 of file MCAsmInfo.h.

References HasCOFFComdatConstants.

◆ hasDotTypeDotSizeDirective()

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

Definition at line 632 of file MCAsmInfo.h.

References HasDotTypeDotSizeDirective.

◆ hasFunctionAlignment()

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

Definition at line 630 of file MCAsmInfo.h.

References HasFunctionAlignment.

◆ hasIdentDirective()

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

Definition at line 634 of file MCAsmInfo.h.

References HasIdentDirective.

◆ hasLEB128Directives()

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

Definition at line 601 of file MCAsmInfo.h.

References HasLEB128Directives.

◆ hasLinkerPrivateGlobalPrefix()

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

Definition at line 566 of file MCAsmInfo.h.

References LinkerPrivateGlobalPrefix.

Referenced by getLinkerPrivateGlobalPrefix().

◆ hasNoDeadStrip()

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

Definition at line 635 of file MCAsmInfo.h.

References HasNoDeadStrip.

◆ hasPreferredAlignment()

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

Definition at line 631 of file MCAsmInfo.h.

References HasPreferredAlignment.

◆ hasSingleParameterDotFile()

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

Definition at line 633 of file MCAsmInfo.h.

References HasSingleParameterDotFile.

◆ hasSubsectionsViaSymbols()

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

Definition at line 469 of file MCAsmInfo.h.

References HasSubsectionsViaSymbols.

◆ hasWeakDefCanBeHiddenDirective()

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

Definition at line 639 of file MCAsmInfo.h.

References HasWeakDefCanBeHiddenDirective.

Referenced by canBeHidden().

◆ initializeAtSpecifiers()

◆ isAcceptableChar()

bool MCAsmInfo::isAcceptableChar ( char C) const

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

Definition at line 69 of file MCAsmInfo.cpp.

References C(), doesAllowAtInName(), isAIX(), llvm::isAlnum(), and isHLASM().

Referenced by isValidUnquotedName().

◆ isAIX()

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

Definition at line 538 of file MCAsmInfo.h.

References IsAIX.

Referenced by isAcceptableChar().

◆ isHLASM()

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

Definition at line 539 of file MCAsmInfo.h.

References IsHLASM.

Referenced by EmitInlineAsmStr(), and isAcceptableChar().

◆ isLittleEndian()

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

True if the target is little endian.

Definition at line 464 of file MCAsmInfo.h.

References IsLittleEndian.

Referenced by llvm::MCAsmBaseStreamer::addEncodingComment(), and llvm::ARMTargetStreamer::emitInst().

◆ isMachO()

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

Definition at line 540 of file MCAsmInfo.h.

References HasSubsectionsViaSymbols.

◆ isStackGrowthDirectionUp()

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

True if target stack grow up.

Definition at line 467 of file MCAsmInfo.h.

References StackGrowsUp.

Referenced by getDataAlignmentFactor().

◆ isValidUnquotedName()

bool MCAsmInfo::isValidUnquotedName ( StringRef Name) const

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

Definition at line 89 of file MCAsmInfo.cpp.

References C(), llvm::detail::DenseSetImpl< ValueT, MapTy >::contains(), getReservedIdentifiers(), and isAcceptableChar().

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

◆ needsDwarfSectionOffsetDirective()

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

Definition at line 532 of file MCAsmInfo.h.

References NeedsDwarfSectionOffsetDirective.

Referenced by EmitGenDwarfAranges(), and EmitGenDwarfInfo().

◆ needsLocalForSize()

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

Definition at line 563 of file MCAsmInfo.h.

References NeedsLocalForSize.

◆ operator=()

MCAsmInfo & llvm::MCAsmInfo::operator= ( MCAsmInfo const & )
delete

References MCAsmInfo().

◆ parseInlineAsmUsingAsmParser()

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

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

Definition at line 727 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 746 of file MCAsmInfo.h.

References PreserveAsmComments.

◆ printExpr()

void MCAsmInfo::printExpr ( raw_ostream & OS,
const MCExpr & Expr ) const

Definition at line 136 of file MCAsmInfo.cpp.

References llvm::dyn_cast(), and printSpecifierExpr().

Referenced by llvm::MCAsmBaseStreamer::addEncodingComment(), llvm::LoongArchTargetAsmStreamer::emitDTPRel32Value(), llvm::MipsTargetAsmStreamer::emitDTPRel32Value(), llvm::LoongArchTargetAsmStreamer::emitDTPRel64Value(), llvm::MipsTargetAsmStreamer::emitDTPRel64Value(), llvm::MipsTargetAsmStreamer::emitGPRel32Value(), llvm::MipsTargetAsmStreamer::emitGPRel64Value(), llvm::WebAssemblyTargetAsmStreamer::emitIndIdx(), llvm::MipsTargetAsmStreamer::emitTPRel32Value(), llvm::MipsTargetAsmStreamer::emitTPRel64Value(), llvm::AArch64AuthMCExpr::print(), llvm::DIEExpr::print(), XtensaOperand::print(), llvm::AMDGPU::printAMDGPUMCExpr(), llvm::AMDGPUMCExpr::printImpl(), llvm::HexagonMCExpr::printImpl(), llvm::NVPTXGenericMCSymbolRefExpr::printImpl(), printImpl(), printMemoryImmediateOffset(), printOperand(), llvm::AArch64MCAsmInfoDarwin::printSpecifierExpr(), llvm::AArch64MCAsmInfoELF::printSpecifierExpr(), llvm::AArch64MCAsmInfoGNUCOFF::printSpecifierExpr(), llvm::AArch64MCAsmInfoMicrosoftCOFF::printSpecifierExpr(), llvm::ARM::printSpecifierExpr(), llvm::AVRMCAsmInfo::printSpecifierExpr(), llvm::CSKYMCAsmInfo::printSpecifierExpr(), llvm::LanaiMCAsmInfo::printSpecifierExpr(), llvm::LoongArchMCAsmInfo::printSpecifierExpr(), llvm::PPCELFMCAsmInfo::printSpecifierExpr(), llvm::PPCXCOFFMCAsmInfo::printSpecifierExpr(), llvm::RISCVMCAsmInfo::printSpecifierExpr(), llvm::RISCVMCAsmInfoDarwin::printSpecifierExpr(), llvm::SparcELFMCAsmInfo::printSpecifierExpr(), llvm::SystemZMCAsmInfoGOFF::printSpecifierExpr(), llvm::VEELFMCAsmInfo::printSpecifierExpr(), and llvm::XtensaMCAsmInfo::printSpecifierExpr().

◆ printSpecifierExpr()

◆ printSwitchToSection()

virtual void llvm::MCAsmInfo::printSwitchToSection ( const MCSection & ,
uint32_t Subsection,
const Triple & ,
raw_ostream &  ) const
inlinevirtual

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

Definition at line 508 of file MCAsmInfo.h.

◆ setAllowAtInName()

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

Definition at line 585 of file MCAsmInfo.h.

References AllowAtInName.

◆ setBinutilsVersion()

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

Definition at line 719 of file MCAsmInfo.h.

References BinutilsVersion.

◆ setCommentColumn()

void llvm::MCAsmInfo::setCommentColumn ( unsigned Col)
inline

Definition at line 555 of file MCAsmInfo.h.

References CommentColumn.

◆ setFullRegisterNames()

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

Definition at line 604 of file MCAsmInfo.h.

References PPCUseFullRegisterNames.

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

◆ setParseInlineAsmUsingAsmParser()

void llvm::MCAsmInfo::setParseInlineAsmUsingAsmParser ( bool Value)
inline

Set whether target want to use AsmParser to parse inlineasm.

Definition at line 741 of file MCAsmInfo.h.

References ParseInlineAsmUsingAsmParser.

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

◆ setPreserveAsmComments()

void llvm::MCAsmInfo::setPreserveAsmComments ( bool Value)
inline

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

Definition at line 749 of file MCAsmInfo.h.

References PreserveAsmComments.

Referenced by llvm::CodeGenTargetMachineImpl::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 736 of file MCAsmInfo.h.

References UseIntegratedAssembler.

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

◆ shouldAllowAdditionalComments()

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

Definition at line 558 of file MCAsmInfo.h.

References AllowAdditionalComments.

◆ 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::AMDGPUMCAsmInfo, llvm::NVPTXMCAsmInfo, and llvm::SPIRVMCAsmInfo.

Definition at line 103 of file MCAsmInfo.cpp.

References usesELFSectionDirectiveForBSS().

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

◆ shouldUseLogicalShr()

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

Definition at line 751 of file MCAsmInfo.h.

References UseLogicalShr.

◆ shouldUseMotorolaIntegers()

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

Definition at line 753 of file MCAsmInfo.h.

References UseMotorolaIntegers.

◆ supportsExtendedDwarfLocDirective()

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

Definition at line 705 of file MCAsmInfo.h.

References SupportsExtendedDwarfLocDirective.

◆ supportsNameQuoting()

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

Definition at line 595 of file MCAsmInfo.h.

References SupportsQuotedNames.

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

◆ supportsSignedData()

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

Definition at line 477 of file MCAsmInfo.h.

References SupportsSignedData.

◆ useAssignmentForEHBegin()

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

Definition at line 562 of file MCAsmInfo.h.

References UseAssignmentForEHBegin.

◆ useAtForSpecifier()

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

Definition at line 703 of file MCAsmInfo.h.

References UseAtForSpecifier.

◆ useCodeAlign()

virtual bool llvm::MCAsmInfo::useCodeAlign ( const MCSection & Sec) const
inlinevirtual

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

Definition at line 522 of file MCAsmInfo.h.

◆ useDwarfRegNumForCFI()

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

Definition at line 702 of file MCAsmInfo.h.

References DwarfRegNumForCFI.

◆ useFullRegisterNames()

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

Definition at line 603 of file MCAsmInfo.h.

References PPCUseFullRegisterNames.

◆ useIntegratedAssembler()

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

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

Definition at line 724 of file MCAsmInfo.h.

References UseIntegratedAssembler.

◆ useParensForSpecifier()

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

Definition at line 704 of file MCAsmInfo.h.

References UseParensForSpecifier.

◆ usesCFIForEH()

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

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

Definition at line 667 of file MCAsmInfo.h.

References llvm::ARM, llvm::DwarfCFI, usesWindowsCFI(), llvm::WinEH, and llvm::ZOS.

Referenced by llvm::DwarfCFIException::beginFunction().

◆ usesCFIWithoutEH()

bool llvm::MCAsmInfo::usesCFIWithoutEH ( ExceptionHandling EH) const
inline

Definition at line 661 of file MCAsmInfo.h.

References llvm::None, and UsesCFIWithoutEH.

◆ usesCompInstByteOrder()

virtual bool llvm::MCAsmInfo::usesCompInstByteOrder ( const MCSubtargetInfo & STI) const
inlinevirtual

True if the instruction is stored in multiple halfwords, with the high-order half appearing first in memory regardless of target endianness, to distinguish it from instructions occupying only one halfword.

Examples are the Thumb variant of Arm, microMIPS, and nanoMIPS.

Reimplemented in llvm::ARMELFMCAsmInfo, and llvm::MipsELFMCAsmInfo.

Definition at line 770 of file MCAsmInfo.h.

Referenced by llvm::MCAsmBaseStreamer::addEncodingComment().

◆ usesELFSectionDirectiveForBSS()

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

Definition at line 528 of file MCAsmInfo.h.

References UsesELFSectionDirectiveForBSS.

Referenced by shouldOmitSectionDirective().

◆ usesPerInvokeEHLabels()

bool llvm::MCAsmInfo::usesPerInvokeEHLabels ( ExceptionHandling EH) const
inline

Returns true if the exception tables reference the per-invoke EH labels emitted around invokes.

32-bit x86 SEH and Wasm do not.

Definition at line 684 of file MCAsmInfo.h.

References llvm::None, llvm::Wasm, llvm::WinEH, WinEHEncodingType, and llvm::WinEH::X86.

Referenced by llvm::SelectionDAGBuilder::lowerStartEH().

◆ usesSetToEquateSymbol()

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

Definition at line 561 of file MCAsmInfo.h.

References UsesSetToEquateSymbol.

◆ usesSunStyleELFSectionSwitchSyntax()

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

Definition at line 524 of file MCAsmInfo.h.

References SunStyleELFSectionSwitchSyntax.

◆ usesWindowsCFI()

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

Returns true if the object format describes unwind information with Windows SEH unwind opcodes (.seh_* directives, .pdata and .xdata).

Whether a function uses that encoding also depends on the exception model; see MachineFunction::usesWindowsUnwindInfo().

Definition at line 677 of file MCAsmInfo.h.

References llvm::WinEH::Invalid, WinEHEncodingType, and llvm::WinEH::X86.

Referenced by llvm::MCStreamer::emitWinCFIStartProc(), llvm::MCStreamer::EnsureValidWinFrameInfo(), usesCFIForEH(), and llvm::MachineFunction::usesWindowsUnwindInfo().

Member Data Documentation

◆ AlignmentIsInBytes

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

Referenced by shouldAllowAdditionalComments(), llvm::SystemZMCAsmInfoGOFF::SystemZMCAsmInfoGOFF(), 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 198 of file MCAsmInfo.h.

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

◆ AllowAtInName

bool llvm::MCAsmInfo::AllowAtInName = false
protected

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

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

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

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

◆ AsciiDirective

const char* llvm::MCAsmInfo::AsciiDirective = "\t.ascii\t"
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 229 of file MCAsmInfo.h.

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

◆ AscizDirective

const char* llvm::MCAsmInfo::AscizDirective = "\t.asciz\t"
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 234 of file MCAsmInfo.h.

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

◆ AssemblerDialect

◆ AtSpecifierToName

llvm::DenseMap<AtSpecifierKind, StringRef> llvm::MCAsmInfo::AtSpecifierToName
protected

Definition at line 434 of file MCAsmInfo.h.

Referenced by getSpecifierName(), and initializeAtSpecifiers().

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

Referenced by binutilsIsAtLeast(), MCAsmInfo(), and setBinutilsVersion().

◆ CalleeSaveStackSlotSize

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

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

◆ CodePointerSize

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

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

◆ CommentColumn

unsigned llvm::MCAsmInfo::CommentColumn = 40
protected

The column (zero-based) at which asm comments should be printed.

Definition at line 423 of file MCAsmInfo.h.

Referenced by getCommentColumn(), and setCommentColumn().

◆ CommentString

StringRef llvm::MCAsmInfo::CommentString = "#"
protected

This indicates the comment string used by the assembler.

Defaults to "#"

Definition at line 134 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::CSKYMCAsmInfo::CSKYMCAsmInfo(), getCommentString(), llvm::HexagonMCAsmInfo::HexagonMCAsmInfo(), llvm::LanaiMCAsmInfo::LanaiMCAsmInfo(), llvm::LoongArchMCAsmInfo::LoongArchMCAsmInfo(), llvm::M68kELFMCAsmInfo::M68kELFMCAsmInfo(), llvm::MipsELFMCAsmInfo::MipsELFMCAsmInfo(), llvm::MSP430MCAsmInfo::MSP430MCAsmInfo(), llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo(), llvm::PPCELFMCAsmInfo::PPCELFMCAsmInfo(), llvm::RISCVMCAsmInfo::RISCVMCAsmInfo(), llvm::RISCVMCAsmInfoDarwin::RISCVMCAsmInfoDarwin(), llvm::SparcELFMCAsmInfo::SparcELFMCAsmInfo(), llvm::SPIRVMCAsmInfo::SPIRVMCAsmInfo(), llvm::SystemZMCAsmInfoGOFF::SystemZMCAsmInfoGOFF(), llvm::X86MCAsmInfoDarwin::X86MCAsmInfoDarwin(), llvm::X86MCAsmInfoMicrosoftMASM::X86MCAsmInfoMicrosoftMASM(), llvm::XCoreMCAsmInfo::XCoreMCAsmInfo(), and llvm::XtensaMCAsmInfo::XtensaMCAsmInfo().

◆ Data16bitsDirective

◆ Data32bitsDirective

◆ Data64bitsDirective

◆ Data8bitsDirective

const char* llvm::MCAsmInfo::Data8bitsDirective = "\t.byte\t"
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 245 of file MCAsmInfo.h.

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

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

◆ DwarfFDERelSymbolSpec

uint16_t llvm::MCAsmInfo::DwarfFDERelSymbolSpec = 0
protected

The optional specifier to use for the relative FDE symbol references.

Definition at line 376 of file MCAsmInfo.h.

Referenced by getExprForFDESymbol(), llvm::RISCVMCAsmInfo::RISCVMCAsmInfo(), and llvm::SparcELFMCAsmInfo::SparcELFMCAsmInfo().

◆ DwarfFDESymbolsUseAbsDiff

bool llvm::MCAsmInfo::DwarfFDESymbolsUseAbsDiff = false
protected

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

Definition at line 373 of file MCAsmInfo.h.

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

◆ DwarfRegNumForCFI

bool llvm::MCAsmInfo::DwarfRegNumForCFI = false
protected

◆ DwarfUsesRelocationsAcrossSections

bool llvm::MCAsmInfo::DwarfUsesRelocationsAcrossSections = true
protected

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

Definition at line 369 of file MCAsmInfo.h.

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

◆ EnableDwarfFileDirectoryDefault

bool llvm::MCAsmInfo::EnableDwarfFileDirectoryDefault = true
protected

True if DWARF ‘.file directory’ directive syntax is used by default.

Definition at line 380 of file MCAsmInfo.h.

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

◆ ExportedVisibilityAttr

MCSymbolAttr llvm::MCAsmInfo::ExportedVisibilityAttr = MCSA_Exported
protected

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

Defaults to MCSA_Exported.

Definition at line 343 of file MCAsmInfo.h.

Referenced by getExportedVisibilityAttr().

◆ GlobalDirective

const char* llvm::MCAsmInfo::GlobalDirective = "\t.globl\t"
protected

This is the directive used to declare a global entity.

Defaults to ".globl".

Definition at line 281 of file MCAsmInfo.h.

Referenced by getGlobalDirective(), llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo(), and llvm::XtensaMCAsmInfo::XtensaMCAsmInfo().

◆ HasAddrsigDirective

bool llvm::MCAsmInfo::HasAddrsigDirective = true
protected

True if the target supports the .addrsig directive.

Definition at line 216 of file MCAsmInfo.h.

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

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

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

◆ HasDotTypeDotSizeDirective

bool llvm::MCAsmInfo::HasDotTypeDotSizeDirective = true
protected

◆ HasFunctionAlignment

bool llvm::MCAsmInfo::HasFunctionAlignment = true
protected

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

Referenced by llvm::AArch64MCAsmInfoELF::AArch64MCAsmInfoELF(), llvm::BPFMCAsmInfo::BPFMCAsmInfo(), 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 210 of file MCAsmInfo.h.

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

◆ HasNoDeadStrip

bool llvm::MCAsmInfo::HasNoDeadStrip = false
protected

True if this target supports the MachO .no_dead_strip directive.

Defaults to false.

Definition at line 319 of file MCAsmInfo.h.

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

◆ HasPreferredAlignment

bool llvm::MCAsmInfo::HasPreferredAlignment = false
protected

◆ HasSingleParameterDotFile

◆ HasSubsectionsViaSymbols

bool llvm::MCAsmInfo::HasSubsectionsViaSymbols = false
protected

True if this target has the MachO .subsections_via_symbols directive.

Default is false.

Definition at line 100 of file MCAsmInfo.h.

Referenced by hasSubsectionsViaSymbols(), isMachO(), and 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 330 of file MCAsmInfo.h.

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

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

Referenced by llvm::ARCMCAsmInfo::ARCMCAsmInfo(), getHiddenDeclarationVisibilityAttr(), llvm::MCAsmInfoCOFF::MCAsmInfoCOFF(), llvm::MCAsmInfoDarwin::MCAsmInfoDarwin(), llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo(), llvm::SPIRVMCAsmInfo::SPIRVMCAsmInfo(), 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 339 of file MCAsmInfo.h.

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

◆ InitialFrameState

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

Definition at line 399 of file MCAsmInfo.h.

Referenced by addInitialFrameState(), and getInitialFrameState().

◆ InlineAsmEnd

◆ InlineAsmStart

const char* llvm::MCAsmInfo::InlineAsmStart = "APP"
protected

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

Defaults to "APP", "NO_APP"

Definition at line 169 of file MCAsmInfo.h.

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

◆ InternalSymbolPrefix

◆ IsAIX

bool llvm::MCAsmInfo::IsAIX = false
protected

Definition at line 111 of file MCAsmInfo.h.

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

◆ IsHLASM

bool llvm::MCAsmInfo::IsHLASM = false
protected

Definition at line 114 of file MCAsmInfo.h.

Referenced by isHLASM(), and llvm::SystemZMCAsmInfoGOFF::SystemZMCAsmInfoGOFF().

◆ IsLittleEndian

◆ LabelSuffix

const char* llvm::MCAsmInfo::LabelSuffix = ":"
protected

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

Definition at line 145 of file MCAsmInfo.h.

Referenced by getLabelSuffix().

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

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

◆ MaxInstLength

◆ MinInstAlignment

unsigned llvm::MCAsmInfo::MinInstAlignment = 1
protected

◆ NameToAtSpecifier

llvm::StringMap<AtSpecifierKind> llvm::MCAsmInfo::NameToAtSpecifier
protected

Definition at line 435 of file MCAsmInfo.h.

Referenced by getSpecifierForName(), and initializeAtSpecifiers().

◆ NeedsDwarfSectionOffsetDirective

bool llvm::MCAsmInfo::NeedsDwarfSectionOffsetDirective = false
protected

◆ NeedsLocalForSize

bool llvm::MCAsmInfo::NeedsLocalForSize = false
protected

Definition at line 154 of file MCAsmInfo.h.

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

◆ ParseInlineAsmUsingAsmParser

bool llvm::MCAsmInfo::ParseInlineAsmUsingAsmParser = false
protected

Use AsmParser to parse inlineAsm when UseIntegratedAssembler is not set.

Definition at line 417 of file MCAsmInfo.h.

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

◆ PPCUseFullRegisterNames

bool llvm::MCAsmInfo::PPCUseFullRegisterNames = false
protected

True if full register names are printed.

Definition at line 213 of file MCAsmInfo.h.

Referenced by setFullRegisterNames(), and useFullRegisterNames().

◆ PreserveAsmComments

bool llvm::MCAsmInfo::PreserveAsmComments = true
protected

Preserve Comments in assembly.

Definition at line 420 of file MCAsmInfo.h.

Referenced by preserveAsmComments(), and setPreserveAsmComments().

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

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

◆ ReservedIdentifiers

llvm::DenseSet<llvm::CachedHashStringRef> llvm::MCAsmInfo::ReservedIdentifiers
protected

Definition at line 440 of file MCAsmInfo.h.

Referenced by getReservedIdentifiers(), and getReservedIdentifiers().

◆ SeparatorString

const char* llvm::MCAsmInfo::SeparatorString = ";"
protected

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

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

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

Referenced by usesSunStyleELFSectionSwitchSyntax().

◆ SupportsDebugInformation

bool llvm::MCAsmInfo::SupportsDebugInformation = false
protected

True if target supports emission of debugging information.

Defaults to false.

Definition at line 357 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::LoongArchMCAsmInfo::LoongArchMCAsmInfo(), llvm::M68kELFMCAsmInfo::M68kELFMCAsmInfo(), llvm::MCAsmInfoCOFF::MCAsmInfoCOFF(), llvm::MipsELFMCAsmInfo::MipsELFMCAsmInfo(), llvm::MSP430MCAsmInfo::MSP430MCAsmInfo(), llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo(), llvm::PPCELFMCAsmInfo::PPCELFMCAsmInfo(), llvm::PPCXCOFFMCAsmInfo::PPCXCOFFMCAsmInfo(), llvm::RISCVMCAsmInfo::RISCVMCAsmInfo(), llvm::RISCVMCAsmInfoDarwin::RISCVMCAsmInfoDarwin(), llvm::SparcELFMCAsmInfo::SparcELFMCAsmInfo(), llvm::SystemZMCAsmInfoELF::SystemZMCAsmInfoELF(), llvm::SystemZMCAsmInfoGOFF::SystemZMCAsmInfoGOFF(), llvm::VEELFMCAsmInfo::VEELFMCAsmInfo(), llvm::WebAssemblyMCAsmInfo::WebAssemblyMCAsmInfo(), llvm::X86ELFMCAsmInfo::X86ELFMCAsmInfo(), llvm::X86MCAsmInfoDarwin::X86MCAsmInfoDarwin(), llvm::XCoreMCAsmInfo::XCoreMCAsmInfo(), and llvm::XtensaMCAsmInfo::XtensaMCAsmInfo().

◆ 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 395 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 202 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 251 of file MCAsmInfo.h.

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

◆ TargetOptions

const MCTargetOptions& llvm::MCAsmInfo::TargetOptions
protected

Definition at line 442 of file MCAsmInfo.h.

Referenced by getOutputAssemblerDialect(), getTargetOptions(), and MCAsmInfo().

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

Referenced by getTextAlignFillValue().

◆ UseAssignmentForEHBegin

bool llvm::MCAsmInfo::UseAssignmentForEHBegin = false
protected

◆ UseAtForSpecifier

bool llvm::MCAsmInfo::UseAtForSpecifier = false
protected

◆ UseDataRegionDirectives

bool llvm::MCAsmInfo::UseDataRegionDirectives = false
protected

◆ UseIntegratedAssembler

bool llvm::MCAsmInfo::UseIntegratedAssembler = true
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 CodeGenTargetMachineImpl::initAsmInfo()).

Definition at line 414 of file MCAsmInfo.h.

Referenced by llvm::NVPTXMCAsmInfo::NVPTXMCAsmInfo(), llvm::ARMELFMCAsmInfo::setUseIntegratedAssembler(), setUseIntegratedAssembler(), useIntegratedAssembler(), 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 427 of file MCAsmInfo.h.

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

◆ UseMotorolaIntegers

bool llvm::MCAsmInfo::UseMotorolaIntegers = false
protected

◆ UseParensForSpecifier

bool llvm::MCAsmInfo::UseParensForSpecifier = false
protected

(ARM-specific) Uses parens for relocation specifier in data directives, e.g.

.word foo(got).

Definition at line 391 of file MCAsmInfo.h.

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

◆ UsesCFIWithoutEH

bool llvm::MCAsmInfo::UsesCFIWithoutEH = false
protected

True if target uses CFI unwind information for other purposes than EH (debugging / sanitizers) when the exception model is ExceptionHandling::None.

Definition at line 362 of file MCAsmInfo.h.

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

◆ UsesELFSectionDirectiveForBSS

◆ UsesSetToEquateSymbol

bool llvm::MCAsmInfo::UsesSetToEquateSymbol = false
protected

◆ WeakDirective

const char* llvm::MCAsmInfo::WeakDirective = "\t.weak\t"
protected

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

Definition at line 322 of file MCAsmInfo.h.

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

◆ WeakRefDirective

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

◆ WinEHEncodingType

◆ ZeroDirective


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