class MCStreamer

Declaration

class MCStreamer { /* full declaration omitted */ };

Description

Streaming machine code generation interface. This interface is intended to provide a programatic interface that is very similar to the level that an assembler .s file provides. It has callbacks to emit bytes, handle directives, etc. The implementation of this interface retains state to know what the current section is etc. There are multiple implementations of this interface: one for writing out a .s file, and implementations that write out .o files of various formats.

Declared at: llvm/include/llvm/MC/MCStreamer.h:197

Method Overview

Methods

virtual void AddBlankLine()

Description

AddBlankLine - Emit a blank line to a .s file to pretty it up.

Declared at: llvm/include/llvm/MC/MCStreamer.h:349

virtual void AddComment(const llvm::Twine& T,
                        bool EOL = true)

Description

Add a textual comment. Typically for comments that can be emitted to the generated .s file if applicable as a QoI issue to make the output of the compiler more readable. This only affects the MCAsmStreamer, and only when verbose assembly output is enabled. If the comment includes embedded \n's, they will each get the comment prefix as appropriate. The added comment should not end with a \n. By default, each comment is terminated with an end of line, i.e. the EOL param is set to true by default. If one prefers not to end the comment with a new line then the EOL param should be passed with a false value.

Declared at: llvm/include/llvm/MC/MCStreamer.h:328

Parameters

const llvm::Twine& T
bool EOL = true

void AssignFragment(llvm::MCSymbol* Symbol,
                    llvm::MCFragment* Fragment)

Description

Sets the symbol's section. Each emitted symbol will be tracked in the ordering table, so we can sort on them later.

Declared at: llvm/include/llvm/MC/MCStreamer.h:444

Parameters

llvm::MCSymbol* Symbol
llvm::MCFragment* Fragment

virtual void BeginCOFFSymbolDef(
    const llvm::MCSymbol* Symbol)

Description

Start emitting COFF symbol definition

Declared at: llvm/include/llvm/MC/MCStreamer.h:523

Parameters

const llvm::MCSymbol* Symbol
- The symbol to have its External & Type fields set.

virtual void ChangeSection(llvm::MCSection*,
                           const llvm::MCExpr*)

Description

Update streamer for a new active section. This is called by PopSection and SwitchSection, if the current section changes.

Declared at: llvm/include/llvm/MC/MCStreamer.h:381

Parameters

llvm::MCSection*
const llvm::MCExpr*

virtual void EmitAddrsig()

Declared at: llvm/include/llvm/MC/MCStreamer.h:1002

virtual void EmitAddrsigSym(
    const llvm::MCSymbol* Sym)

Declared at: llvm/include/llvm/MC/MCStreamer.h:1003

Parameters

const llvm::MCSymbol* Sym

virtual void EmitAssemblerFlag(
    llvm::MCAssemblerFlag Flag)

Description

Note in the output the specified \p Flag.

Declared at: llvm/include/llvm/MC/MCStreamer.h:461

Parameters

llvm::MCAssemblerFlag Flag

virtual void EmitAssignment(
    llvm::MCSymbol* Symbol,
    const llvm::MCExpr* Value)

Description

Emit an assignment of \p Value to \p Symbol. This corresponds to an assembler statement such as: symbol = value The assignment generates no code, but has the side effect of binding the value in the current context. For the assembly streamer, this prints the binding into the .s file.

Declared at: llvm/include/llvm/MC/MCStreamer.h:499

Parameters

llvm::MCSymbol* Symbol
- The symbol being assigned to.
const llvm::MCExpr* Value
- The value for the symbol.

virtual void EmitBinaryData(llvm::StringRef Data)

Description

Functionally identical to EmitBytes. When emitting textual assembly, this method uses .byte directives instead of .ascii or .asciz for readability.

Declared at: llvm/include/llvm/MC/MCStreamer.h:638

Parameters

llvm::StringRef Data

virtual void EmitBuildVersion(
    unsigned int Platform,
    unsigned int Major,
    unsigned int Minor,
    unsigned int Update,
    llvm::VersionTuple SDKVersion)

Description

Emit/Specify Mach-O build version command.\p Platform should be one of MachO::PlatformType.

Declared at: llvm/include/llvm/MC/MCStreamer.h:477

Parameters

unsigned int Platform
unsigned int Major
unsigned int Minor
unsigned int Update
llvm::VersionTuple SDKVersion

virtual void EmitBundleAlignMode(
    unsigned int AlignPow2)

Description

Set the bundle alignment mode from now on in the section. The argument is the power of 2 to which the alignment is set. The value 0 means turn the bundle alignment off.

Declared at: llvm/include/llvm/MC/MCStreamer.h:1011

Parameters

unsigned int AlignPow2

virtual void EmitBundleLock(bool AlignToEnd)

Description

The following instructions are a bundle-locked group.

Declared at: llvm/include/llvm/MC/MCStreamer.h:1017

Parameters

bool AlignToEnd
- If true, the bundle-locked group will be aligned to the end of a bundle.

virtual void EmitBundleUnlock()

Description

Ends a bundle-locked group.

Declared at: llvm/include/llvm/MC/MCStreamer.h:1020

virtual void EmitBytes(llvm::StringRef Data)

Description

Emit the bytes in \p Data into the output. This is used to implement assembler directives such as .byte, .ascii, etc.

Declared at: llvm/include/llvm/MC/MCStreamer.h:634

Parameters

llvm::StringRef Data

virtual void EmitCFIAdjustCfaOffset(
    int64_t Adjustment)

Declared at: llvm/include/llvm/MC/MCStreamer.h:947

Parameters

int64_t Adjustment

virtual void EmitCFIBKeyFrame()

Declared at: llvm/include/llvm/MC/MCStreamer.h:843

virtual void EmitCFIDefCfa(int64_t Register,
                           int64_t Offset)

Declared at: llvm/include/llvm/MC/MCStreamer.h:936

Parameters

int64_t Register
int64_t Offset

virtual void EmitCFIDefCfaOffset(int64_t Offset)

Declared at: llvm/include/llvm/MC/MCStreamer.h:937

Parameters

int64_t Offset

virtual void EmitCFIDefCfaRegister(
    int64_t Register)

Declared at: llvm/include/llvm/MC/MCStreamer.h:938

Parameters

int64_t Register

void EmitCFIEndProc()

Declared at: llvm/include/llvm/MC/MCStreamer.h:935

virtual void EmitCFIEndProcImpl(
    llvm::MCDwarfFrameInfo& CurFrame)

Declared at: llvm/include/llvm/MC/MCStreamer.h:237

Parameters

llvm::MCDwarfFrameInfo& CurFrame

virtual void EmitCFIEscape(llvm::StringRef Values)

Declared at: llvm/include/llvm/MC/MCStreamer.h:948

Parameters

llvm::StringRef Values

virtual void EmitCFIGnuArgsSize(int64_t Size)

Declared at: llvm/include/llvm/MC/MCStreamer.h:950

Parameters

int64_t Size

virtual llvm::MCSymbol* EmitCFILabel()

Description

When emitting an object file, create and emit a real label. When emitting textual assembly, this should do nothing to avoid polluting our output.

Declared at: llvm/include/llvm/MC/MCStreamer.h:282

virtual void EmitCFILsda(
    const llvm::MCSymbol* Sym,
    unsigned int Encoding)

Declared at: llvm/include/llvm/MC/MCStreamer.h:941

Parameters

const llvm::MCSymbol* Sym
unsigned int Encoding

virtual void EmitCFINegateRAState()

Declared at: llvm/include/llvm/MC/MCStreamer.h:955

virtual void EmitCFIOffset(int64_t Register,
                           int64_t Offset)

Declared at: llvm/include/llvm/MC/MCStreamer.h:939

Parameters

int64_t Register
int64_t Offset

virtual void EmitCFIPersonality(
    const llvm::MCSymbol* Sym,
    unsigned int Encoding)

Declared at: llvm/include/llvm/MC/MCStreamer.h:940

Parameters

const llvm::MCSymbol* Sym
unsigned int Encoding

virtual void EmitCFIRegister(int64_t Register1,
                             int64_t Register2)

Declared at: llvm/include/llvm/MC/MCStreamer.h:953

Parameters

int64_t Register1
int64_t Register2

virtual void EmitCFIRelOffset(int64_t Register,
                              int64_t Offset)

Declared at: llvm/include/llvm/MC/MCStreamer.h:946

Parameters

int64_t Register
int64_t Offset

virtual void EmitCFIRememberState()

Declared at: llvm/include/llvm/MC/MCStreamer.h:942

virtual void EmitCFIRestore(int64_t Register)

Declared at: llvm/include/llvm/MC/MCStreamer.h:945

Parameters

int64_t Register

virtual void EmitCFIRestoreState()

Declared at: llvm/include/llvm/MC/MCStreamer.h:943

virtual void EmitCFIReturnColumn(int64_t Register)

Declared at: llvm/include/llvm/MC/MCStreamer.h:949

Parameters

int64_t Register

virtual void EmitCFISameValue(int64_t Register)

Declared at: llvm/include/llvm/MC/MCStreamer.h:944

Parameters

int64_t Register

virtual void EmitCFISections(bool EH, bool Debug)

Declared at: llvm/include/llvm/MC/MCStreamer.h:933

Parameters

bool EH
bool Debug

virtual void EmitCFISignalFrame()

Declared at: llvm/include/llvm/MC/MCStreamer.h:951

void EmitCFIStartProc(
    bool IsSimple,
    llvm::SMLoc Loc = llvm::SMLoc())

Declared at: llvm/include/llvm/MC/MCStreamer.h:934

Parameters

bool IsSimple
llvm::SMLoc Loc = llvm::SMLoc()

virtual void EmitCFIStartProcImpl(
    llvm::MCDwarfFrameInfo& Frame)

Declared at: llvm/include/llvm/MC/MCStreamer.h:236

Parameters

llvm::MCDwarfFrameInfo& Frame

virtual void EmitCFIUndefined(int64_t Register)

Declared at: llvm/include/llvm/MC/MCStreamer.h:952

Parameters

int64_t Register

virtual void EmitCFIWindowSave()

Declared at: llvm/include/llvm/MC/MCStreamer.h:954

virtual void EmitCOFFImgRel32(
    const llvm::MCSymbol* Symbol,
    int64_t Offset)

Description

Emits a COFF image relative relocation.

Declared at: llvm/include/llvm/MC/MCStreamer.h:556

Parameters

const llvm::MCSymbol* Symbol
- Symbol the image relative relocation should point to.
int64_t Offset

virtual void EmitCOFFSafeSEH(
    const llvm::MCSymbol* Symbol)

Declared at: llvm/include/llvm/MC/MCStreamer.h:538

Parameters

const llvm::MCSymbol* Symbol

virtual void EmitCOFFSecRel32(
    const llvm::MCSymbol* Symbol,
    uint64_t Offset)

Description

Emits a COFF section relative relocation.

Declared at: llvm/include/llvm/MC/MCStreamer.h:551

Parameters

const llvm::MCSymbol* Symbol
- Symbol the section relative relocation should point to.
uint64_t Offset

virtual void EmitCOFFSectionIndex(
    const llvm::MCSymbol* Symbol)

Description

Emits a COFF section index.

Declared at: llvm/include/llvm/MC/MCStreamer.h:546

Parameters

const llvm::MCSymbol* Symbol
- Symbol the section number relocation should point to.

virtual void EmitCOFFSymbolIndex(
    const llvm::MCSymbol* Symbol)

Description

Emits the symbol table index of a Symbol into the current section.

Declared at: llvm/include/llvm/MC/MCStreamer.h:541

Parameters

const llvm::MCSymbol* Symbol

virtual void EmitCOFFSymbolStorageClass(
    int StorageClass)

Description

Emit the storage class of the symbol.

Declared at: llvm/include/llvm/MC/MCStreamer.h:528

Parameters

int StorageClass
- The storage class the symbol should have.

virtual void EmitCOFFSymbolType(int Type)

Description

Emit the type of the symbol.

Declared at: llvm/include/llvm/MC/MCStreamer.h:533

Parameters

int Type
- A COFF type identifier (see COFF::SymbolType in X86COFF.h)

virtual void EmitCVDefRangeDirective(
    ArrayRef<std::pair<const MCSymbol*,
                       const MCSymbol*>> Ranges,
    llvm::StringRef FixedSizePortion)

Description

This implements the CodeView '.cv_def_range' assembler directive.

Declared at: llvm/include/llvm/MC/MCStreamer.h:889

Parameters

ArrayRef< std::pair<const MCSymbol*, const MCSymbol*>> Ranges
llvm::StringRef FixedSizePortion

virtual void EmitCVDefRangeDirective(
    ArrayRef<std::pair<const MCSymbol*,
                       const MCSymbol*>> Ranges,
    codeview::DefRangeRegisterRelHeader DRHdr)

Declared at: llvm/include/llvm/MC/MCStreamer.h:893

Parameters

ArrayRef< std::pair<const MCSymbol*, const MCSymbol*>> Ranges
codeview::DefRangeRegisterRelHeader DRHdr

virtual void EmitCVDefRangeDirective(
    ArrayRef<std::pair<const MCSymbol*,
                       const MCSymbol*>> Ranges,
    codeview::DefRangeSubfieldRegisterHeader
        DRHdr)

Declared at: llvm/include/llvm/MC/MCStreamer.h:897

Parameters

ArrayRef< std::pair<const MCSymbol*, const MCSymbol*>> Ranges
codeview::DefRangeSubfieldRegisterHeader DRHdr

virtual void EmitCVDefRangeDirective(
    ArrayRef<std::pair<const MCSymbol*,
                       const MCSymbol*>> Ranges,
    codeview::DefRangeRegisterHeader DRHdr)

Declared at: llvm/include/llvm/MC/MCStreamer.h:901

Parameters

ArrayRef< std::pair<const MCSymbol*, const MCSymbol*>> Ranges
codeview::DefRangeRegisterHeader DRHdr

virtual void EmitCVDefRangeDirective(
    ArrayRef<std::pair<const MCSymbol*,
                       const MCSymbol*>> Ranges,
    codeview::DefRangeFramePointerRelHeader DRHdr)

Declared at: llvm/include/llvm/MC/MCStreamer.h:905

Parameters

ArrayRef< std::pair<const MCSymbol*, const MCSymbol*>> Ranges
codeview::DefRangeFramePointerRelHeader DRHdr

virtual void EmitCVFPOData(
    const llvm::MCSymbol* ProcSym,
    llvm::SMLoc Loc = {})

Description

This implements the CodeView '.cv_fpo_data' assembler directive.

Declared at: llvm/include/llvm/MC/MCStreamer.h:920

Parameters

const llvm::MCSymbol* ProcSym
llvm::SMLoc Loc = {}

virtual void EmitCVFileChecksumOffsetDirective(
    unsigned int FileNo)

Description

This implements the CodeView '.cv_filechecksumoffset' assembler directive.

Declared at: llvm/include/llvm/MC/MCStreamer.h:917

Parameters

unsigned int FileNo

virtual void EmitCVFileChecksumsDirective()

Description

This implements the CodeView '.cv_filechecksums' assembler directive.

Declared at: llvm/include/llvm/MC/MCStreamer.h:913

virtual bool EmitCVFileDirective(
    unsigned int FileNo,
    llvm::StringRef Filename,
    ArrayRef<uint8_t> Checksum,
    unsigned int ChecksumKind)

Description

Associate a filename with a specified logical file number, and also specify that file's checksum information. This implements the '.cv_file 4 "foo.c"' assembler directive. Returns true on success.

Declared at: llvm/include/llvm/MC/MCStreamer.h:855

Parameters

unsigned int FileNo
llvm::StringRef Filename
ArrayRef<uint8_t> Checksum
unsigned int ChecksumKind

virtual bool EmitCVFuncIdDirective(
    unsigned int FunctionId)

Description

Introduces a function id for use with .cv_loc.

Declared at: llvm/include/llvm/MC/MCStreamer.h:860

Parameters

unsigned int FunctionId

virtual void EmitCVInlineLinetableDirective(
    unsigned int PrimaryFunctionId,
    unsigned int SourceFileId,
    unsigned int SourceLineNum,
    const llvm::MCSymbol* FnStartSym,
    const llvm::MCSymbol* FnEndSym)

Description

This implements the CodeView '.cv_inline_linetable' assembler directive.

Declared at: llvm/include/llvm/MC/MCStreamer.h:881

Parameters

unsigned int PrimaryFunctionId
unsigned int SourceFileId
unsigned int SourceLineNum
const llvm::MCSymbol* FnStartSym
const llvm::MCSymbol* FnEndSym

virtual bool EmitCVInlineSiteIdDirective(
    unsigned int FunctionId,
    unsigned int IAFunc,
    unsigned int IAFile,
    unsigned int IALine,
    unsigned int IACol,
    llvm::SMLoc Loc)

Description

Introduces an inline call site id for use with .cv_loc. Includes extra information for inline line table generation.

Declared at: llvm/include/llvm/MC/MCStreamer.h:864

Parameters

unsigned int FunctionId
unsigned int IAFunc
unsigned int IAFile
unsigned int IALine
unsigned int IACol
llvm::SMLoc Loc

virtual void EmitCVLinetableDirective(
    unsigned int FunctionId,
    const llvm::MCSymbol* FnStart,
    const llvm::MCSymbol* FnEnd)

Description

This implements the CodeView '.cv_linetable' assembler directive.

Declared at: llvm/include/llvm/MC/MCStreamer.h:875

Parameters

unsigned int FunctionId
const llvm::MCSymbol* FnStart
const llvm::MCSymbol* FnEnd

virtual void EmitCVLocDirective(
    unsigned int FunctionId,
    unsigned int FileNo,
    unsigned int Line,
    unsigned int Column,
    bool PrologueEnd,
    bool IsStmt,
    llvm::StringRef FileName,
    llvm::SMLoc Loc)

Description

This implements the CodeView '.cv_loc' assembler directive.

Declared at: llvm/include/llvm/MC/MCStreamer.h:869

Parameters

unsigned int FunctionId
unsigned int FileNo
unsigned int Line
unsigned int Column
bool PrologueEnd
bool IsStmt
llvm::StringRef FileName
llvm::SMLoc Loc

virtual void EmitCVStringTableDirective()

Description

This implements the CodeView '.cv_stringtable' assembler directive.

Declared at: llvm/include/llvm/MC/MCStreamer.h:910

virtual void EmitCodeAlignment(
    unsigned int ByteAlignment,
    unsigned int MaxBytesToEmit = 0)

Description

Emit nops until the byte alignment \p ByteAlignment is reached. This used to align code where the alignment bytes may be executed. This can emit different bytes for different sizes to optimize execution.

Declared at: llvm/include/llvm/MC/MCStreamer.h:785

Parameters

unsigned int ByteAlignment
- The alignment to reach. This must be a power of two on some targets.
unsigned int MaxBytesToEmit = 0
- The maximum numbers of bytes to emit, or 0. If the alignment cannot be reached in this many bytes, no bytes are emitted.

virtual void EmitCodePaddingBasicBlockEnd(
    const llvm::MCCodePaddingContext& Context)

Declared at: llvm/include/llvm/MC/MCStreamer.h:803

Parameters

const llvm::MCCodePaddingContext& Context

virtual void EmitCodePaddingBasicBlockStart(
    const llvm::MCCodePaddingContext& Context)

Declared at: llvm/include/llvm/MC/MCStreamer.h:800

Parameters

const llvm::MCCodePaddingContext& Context

virtual void EmitCommonSymbol(
    llvm::MCSymbol* Symbol,
    uint64_t Size,
    unsigned int ByteAlignment)

Description

Emit a common symbol.

Declared at: llvm/include/llvm/MC/MCStreamer.h:594

Parameters

llvm::MCSymbol* Symbol
- The common symbol to emit.
uint64_t Size
- The size of the common symbol.
unsigned int ByteAlignment
- The alignment of the symbol if non-zero. This must be a power of 2.

virtual void EmitDTPRel32Value(
    const llvm::MCExpr* Value)

Description

Emit the expression \p Value into the output as a dtprel (32-bit DTP relative) value. This is used to implement assembler directives such as .dtprelword on targets that support them.

Declared at: llvm/include/llvm/MC/MCStreamer.h:695

Parameters

const llvm::MCExpr* Value

virtual void EmitDTPRel64Value(
    const llvm::MCExpr* Value)

Description

Emit the expression \p Value into the output as a dtprel (64-bit DTP relative) value. This is used to implement assembler directives such as .dtpreldword on targets that support them.

Declared at: llvm/include/llvm/MC/MCStreamer.h:688

Parameters

const llvm::MCExpr* Value

virtual void EmitDataRegion(
    llvm::MCDataRegionType Kind)

Description

Note in the output the specified region \p Kind.

Declared at: llvm/include/llvm/MC/MCStreamer.h:468

Parameters

llvm::MCDataRegionType Kind

unsigned int EmitDwarfFileDirective(
    unsigned int FileNo,
    llvm::StringRef Directory,
    llvm::StringRef Filename,
    Optional<MD5::MD5Result> Checksum = None,
    Optional<llvm::StringRef> Source = None,
    unsigned int CUID = 0)

Description

Associate a filename with a specified logical file number. This implements the DWARF2 '.file 4 "foo.c"' assembler directive.

Declared at: llvm/include/llvm/MC/MCStreamer.h:817

Parameters

unsigned int FileNo
llvm::StringRef Directory
llvm::StringRef Filename
Optional<MD5::MD5Result> Checksum = None
Optional<llvm::StringRef> Source = None
unsigned int CUID = 0

virtual void EmitDwarfLocDirective(
    unsigned int FileNo,
    unsigned int Line,
    unsigned int Column,
    unsigned int Flags,
    unsigned int Isa,
    unsigned int Discriminator,
    llvm::StringRef FileName)

Description

This implements the DWARF2 '.loc fileno lineno ...' assembler directive.

Declared at: llvm/include/llvm/MC/MCStreamer.h:847

Parameters

unsigned int FileNo
unsigned int Line
unsigned int Column
unsigned int Flags
unsigned int Isa
unsigned int Discriminator
llvm::StringRef FileName

virtual void EmitEHSymAttributes(
    const llvm::MCSymbol* Symbol,
    llvm::MCSymbol* EHSymbol)

Declared at: llvm/include/llvm/MC/MCStreamer.h:458

Parameters

const llvm::MCSymbol* Symbol
llvm::MCSymbol* EHSymbol

virtual void EmitFileDirective(
    llvm::StringRef Filename)

Description

Switch to a new logical file. This is used to implement the '.file "foo.c"' assembler directive.

Declared at: llvm/include/llvm/MC/MCStreamer.h:809

Parameters

llvm::StringRef Filename

virtual void EmitGPRel32Value(
    const llvm::MCExpr* Value)

Description

Emit the expression \p Value into the output as a gprel32 (32-bit GP relative) value. This is used to implement assembler directives such as .gprel32 on targets that support them.

Declared at: llvm/include/llvm/MC/MCStreamer.h:723

Parameters

const llvm::MCExpr* Value

virtual void EmitGPRel64Value(
    const llvm::MCExpr* Value)

Description

Emit the expression \p Value into the output as a gprel64 (64-bit GP relative) value. This is used to implement assembler directives such as .gpdword on targets that support them.

Declared at: llvm/include/llvm/MC/MCStreamer.h:716

Parameters

const llvm::MCExpr* Value

virtual void EmitIdent(
    llvm::StringRef IdentString)

Description

Emit the "identifiers" directive. This implements the '.ident "version foo"' assembler directive.

Declared at: llvm/include/llvm/MC/MCStreamer.h:813

Parameters

llvm::StringRef IdentString

virtual void EmitInstruction(
    const llvm::MCInst& Inst,
    const llvm::MCSubtargetInfo& STI)

Description

Emit the given \p Instruction into the current section.

Declared at: llvm/include/llvm/MC/MCStreamer.h:1006

Parameters

const llvm::MCInst& Inst
const llvm::MCSubtargetInfo& STI

virtual void EmitIntValue(uint64_t Value,
                          unsigned int Size)

Description

Special case of EmitValue that avoids the client having to pass in a MCExpr for constant integers.

Declared at: llvm/include/llvm/MC/MCStreamer.h:657

Parameters

uint64_t Value
unsigned int Size

virtual void EmitIntValueInHex(uint64_t Value,
                               unsigned int Size)

Description

Special case of EmitValue that avoids the client having to pass in a MCExpr for constant integers & prints in Hex format for certain modes.

Declared at: llvm/include/llvm/MC/MCStreamer.h:662

Parameters

uint64_t Value
unsigned int Size

virtual void EmitLOHDirective(
    llvm::MCLOHType Kind,
    const llvm::MCLOHArgs& Args)

Description

Emit a Linker Optimization Hint (LOH) directive.

Declared at: llvm/include/llvm/MC/MCStreamer.h:586

Parameters

llvm::MCLOHType Kind
const llvm::MCLOHArgs& Args
- Arguments of the LOH.

virtual void EmitLabel(
    llvm::MCSymbol* Symbol,
    llvm::SMLoc Loc = llvm::SMLoc())

Description

Emit a label for \p Symbol into the current section. This corresponds to an assembler statement such as: foo:

Declared at: llvm/include/llvm/MC/MCStreamer.h:456

Parameters

llvm::MCSymbol* Symbol
- The symbol to emit. A given symbol should only be emitted as a label once, and symbols emitted as a label should never be used in an assignment.
llvm::SMLoc Loc = llvm::SMLoc()

virtual void EmitLinkerOptions(
    ArrayRef<std::string> Kind)

Description

Emit the given list \p Options of strings as linker options into the output.

Declared at: llvm/include/llvm/MC/MCStreamer.h:465

Parameters

ArrayRef<std::string> Kind

virtual void EmitLocalCommonSymbol(
    llvm::MCSymbol* Symbol,
    uint64_t Size,
    unsigned int ByteAlignment)

Description

Emit a local common (.lcomm) symbol.

Declared at: llvm/include/llvm/MC/MCStreamer.h:602

Parameters

llvm::MCSymbol* Symbol
- The common symbol to emit.
uint64_t Size
- The size of the common symbol.
unsigned int ByteAlignment
- The alignment of the common symbol in bytes.

void EmitRawText(const llvm::Twine& String)

Description

If this file is backed by a assembly streamer, this dumps the specified string in the output .s file. This capability is indicated by the hasRawTextSupport() predicate. By default this aborts.

Declared at: llvm/include/llvm/MC/MCStreamer.h:1025

Parameters

const llvm::Twine& String

virtual void EmitRawTextImpl(
    llvm::StringRef String)

Declared at: llvm/include/llvm/MC/MCStreamer.h:245

Parameters

llvm::StringRef String

virtual bool EmitRelocDirective(
    const llvm::MCExpr& Offset,
    llvm::StringRef Name,
    const llvm::MCExpr* Expr,
    llvm::SMLoc Loc,
    const llvm::MCSubtargetInfo& STI)

Description

Emit a .reloc directive. Returns true if the relocation could not be emitted because Name is not known.

Declared at: llvm/include/llvm/MC/MCStreamer.h:996

Parameters

const llvm::MCExpr& Offset
llvm::StringRef Name
const llvm::MCExpr* Expr
llvm::SMLoc Loc
const llvm::MCSubtargetInfo& STI

void EmitSLEB128IntValue(int64_t Value)

Description

Special case of EmitSLEB128Value that avoids the client having to pass in a MCExpr for constant integers.

Declared at: llvm/include/llvm/MC/MCStreamer.h:676

Parameters

int64_t Value

virtual void EmitSLEB128Value(
    const llvm::MCExpr* Value)

Declared at: llvm/include/llvm/MC/MCStreamer.h:668

Parameters

const llvm::MCExpr* Value

virtual bool EmitSymbolAttribute(
    llvm::MCSymbol* Symbol,
    llvm::MCSymbolAttr Attribute)

Description

Add the given \p Attribute to \p Symbol.

Declared at: llvm/include/llvm/MC/MCStreamer.h:511

Parameters

llvm::MCSymbol* Symbol
llvm::MCSymbolAttr Attribute

virtual void EmitSymbolDesc(
    llvm::MCSymbol* Symbol,
    unsigned int DescValue)

Description

Set the \p DescValue for the \p Symbol.

Declared at: llvm/include/llvm/MC/MCStreamer.h:518

Parameters

llvm::MCSymbol* Symbol
- The symbol to have its n_desc field set.
unsigned int DescValue
- The value to set into the n_desc field.

void EmitSymbolValue(
    const llvm::MCSymbol* Sym,
    unsigned int Size,
    bool IsSectionRelative = false)

Description

Special case of EmitValue that avoids the client having to pass in a MCExpr for MCSymbols.

Declared at: llvm/include/llvm/MC/MCStreamer.h:680

Parameters

const llvm::MCSymbol* Sym
unsigned int Size
bool IsSectionRelative = false

virtual void EmitSyntaxDirective()

Declared at: llvm/include/llvm/MC/MCStreamer.h:991

virtual void EmitTBSSSymbol(
    llvm::MCSection* Section,
    llvm::MCSymbol* Symbol,
    uint64_t Size,
    unsigned int ByteAlignment = 0)

Description

Emit a thread local bss (.tbss) symbol.

Declared at: llvm/include/llvm/MC/MCStreamer.h:623

Parameters

llvm::MCSection* Section
- The thread local common section.
llvm::MCSymbol* Symbol
- The thread local common symbol to emit.
uint64_t Size
- The size of the symbol.
unsigned int ByteAlignment = 0
- The alignment of the thread local common symbol if non-zero. This must be a power of 2 on some targets.

virtual void EmitTPRel32Value(
    const llvm::MCExpr* Value)

Description

Emit the expression \p Value into the output as a tprel (32-bit TP relative) value. This is used to implement assembler directives such as .tprelword on targets that support them.

Declared at: llvm/include/llvm/MC/MCStreamer.h:709

Parameters

const llvm::MCExpr* Value

virtual void EmitTPRel64Value(
    const llvm::MCExpr* Value)

Description

Emit the expression \p Value into the output as a tprel (64-bit TP relative) value. This is used to implement assembler directives such as .tpreldword on targets that support them.

Declared at: llvm/include/llvm/MC/MCStreamer.h:702

Parameters

const llvm::MCExpr* Value

virtual void EmitThumbFunc(llvm::MCSymbol* Func)

Description

Note in the output that the specified \p Func is a Thumb mode function (ARM target only).

Declared at: llvm/include/llvm/MC/MCStreamer.h:486

Parameters

llvm::MCSymbol* Func

void EmitULEB128IntValue(uint64_t Value,
                         unsigned int PadTo = 0)

Description

Special case of EmitULEB128Value that avoids the client having to pass in a MCExpr for constant integers.

Declared at: llvm/include/llvm/MC/MCStreamer.h:672

Parameters

uint64_t Value
unsigned int PadTo = 0

virtual void EmitULEB128Value(
    const llvm::MCExpr* Value)

Declared at: llvm/include/llvm/MC/MCStreamer.h:666

Parameters

const llvm::MCExpr* Value

void EmitValue(const llvm::MCExpr* Value,
               unsigned int Size,
               llvm::SMLoc Loc = llvm::SMLoc())

Declared at: llvm/include/llvm/MC/MCStreamer.h:653

Parameters

const llvm::MCExpr* Value
unsigned int Size
llvm::SMLoc Loc = llvm::SMLoc()

virtual void EmitValueImpl(
    const llvm::MCExpr* Value,
    unsigned int Size,
    llvm::SMLoc Loc = llvm::SMLoc())

Description

Emit the expression \p Value into the output as a native integer of the given \p Size bytes. This is used to implement assembler directives such as .word, .quad, etc.

Declared at: llvm/include/llvm/MC/MCStreamer.h:650

Parameters

const llvm::MCExpr* Value
- The value to emit.
unsigned int Size
- The size of the integer (in bytes) to emit. This must match a native machine width.
llvm::SMLoc Loc = llvm::SMLoc()
- The location of the expression for error reporting.

virtual void EmitValueToAlignment(
    unsigned int ByteAlignment,
    int64_t Value = 0,
    unsigned int ValueSize = 1,
    unsigned int MaxBytesToEmit = 0)

Description

Emit some number of copies of \p Value until the byte alignment \p ByteAlignment is reached. If the number of bytes need to emit for the alignment is not a multiple of \p ValueSize, then the contents of the emitted fill bytes is undefined. This used to implement the .align assembler directive.

Declared at: llvm/include/llvm/MC/MCStreamer.h:771

Parameters

unsigned int ByteAlignment
- The alignment to reach. This must be a power of two on some targets.
int64_t Value = 0
- The value to use when filling bytes.
unsigned int ValueSize = 1
- The size of the integer (in bytes) to emit for\p Value. This must match a native machine width.
unsigned int MaxBytesToEmit = 0
- The maximum numbers of bytes to emit, or 0. If the alignment cannot be reached in this many bytes, no bytes are emitted.

void EmitVersionForTarget(
    const llvm::Triple& Target,
    const llvm::VersionTuple& SDKVersion)

Declared at: llvm/include/llvm/MC/MCStreamer.h:481

Parameters

const llvm::Triple& Target
const llvm::VersionTuple& SDKVersion

virtual void EmitVersionMin(
    llvm::MCVersionMinType Type,
    unsigned int Major,
    unsigned int Minor,
    unsigned int Update,
    llvm::VersionTuple SDKVersion)

Description

Specify the Mach-O minimum deployment target version.

Declared at: llvm/include/llvm/MC/MCStreamer.h:471

Parameters

llvm::MCVersionMinType Type
unsigned int Major
unsigned int Minor
unsigned int Update
llvm::VersionTuple SDKVersion

virtual void EmitWeakReference(
    llvm::MCSymbol* Alias,
    const llvm::MCSymbol* Symbol)

Description

Emit an weak reference from \p Alias to \p Symbol. This corresponds to an assembler statement such as: .weakref alias, symbol

Declared at: llvm/include/llvm/MC/MCStreamer.h:508

Parameters

llvm::MCSymbol* Alias
- The alias that is being created.
const llvm::MCSymbol* Symbol
- The symbol being aliased.

virtual void EmitWinCFIAllocStack(
    unsigned int Size,
    llvm::SMLoc Loc = llvm::SMLoc())

Declared at: llvm/include/llvm/MC/MCStreamer.h:969

Parameters

unsigned int Size
llvm::SMLoc Loc = llvm::SMLoc()

virtual void EmitWinCFIEndChained(
    llvm::SMLoc Loc = llvm::SMLoc())

Declared at: llvm/include/llvm/MC/MCStreamer.h:965

Parameters

llvm::SMLoc Loc = llvm::SMLoc()

virtual void EmitWinCFIEndProc(
    llvm::SMLoc Loc = llvm::SMLoc())

Declared at: llvm/include/llvm/MC/MCStreamer.h:958

Parameters

llvm::SMLoc Loc = llvm::SMLoc()

virtual void EmitWinCFIEndProlog(
    llvm::SMLoc Loc = llvm::SMLoc())

Declared at: llvm/include/llvm/MC/MCStreamer.h:975

Parameters

llvm::SMLoc Loc = llvm::SMLoc()

virtual void EmitWinCFIFuncletOrFuncEnd(
    llvm::SMLoc Loc = llvm::SMLoc())

Description

This is used on platforms, such as Windows on ARM64, that require function or funclet sizes to be emitted in .xdata before the End marker is emitted for the frame. We cannot use the End marker, as it is not set at the point of emitting .xdata, in order to indicate that the frame is active.

Declared at: llvm/include/llvm/MC/MCStreamer.h:963

Parameters

llvm::SMLoc Loc = llvm::SMLoc()

virtual void EmitWinCFIPushFrame(
    bool Code,
    llvm::SMLoc Loc = llvm::SMLoc())

Declared at: llvm/include/llvm/MC/MCStreamer.h:974

Parameters

bool Code
llvm::SMLoc Loc = llvm::SMLoc()

virtual void EmitWinCFIPushReg(
    llvm::MCRegister Register,
    llvm::SMLoc Loc = llvm::SMLoc())

Declared at: llvm/include/llvm/MC/MCStreamer.h:966

Parameters

llvm::MCRegister Register
llvm::SMLoc Loc = llvm::SMLoc()

virtual void EmitWinCFISaveReg(
    llvm::MCRegister Register,
    unsigned int Offset,
    llvm::SMLoc Loc = llvm::SMLoc())

Declared at: llvm/include/llvm/MC/MCStreamer.h:970

Parameters

llvm::MCRegister Register
unsigned int Offset
llvm::SMLoc Loc = llvm::SMLoc()

virtual void EmitWinCFISaveXMM(
    llvm::MCRegister Register,
    unsigned int Offset,
    llvm::SMLoc Loc = llvm::SMLoc())

Declared at: llvm/include/llvm/MC/MCStreamer.h:972

Parameters

llvm::MCRegister Register
unsigned int Offset
llvm::SMLoc Loc = llvm::SMLoc()

virtual void EmitWinCFISetFrame(
    llvm::MCRegister Register,
    unsigned int Offset,
    llvm::SMLoc Loc = llvm::SMLoc())

Declared at: llvm/include/llvm/MC/MCStreamer.h:967

Parameters

llvm::MCRegister Register
unsigned int Offset
llvm::SMLoc Loc = llvm::SMLoc()

virtual void EmitWinCFIStartChained(
    llvm::SMLoc Loc = llvm::SMLoc())

Declared at: llvm/include/llvm/MC/MCStreamer.h:964

Parameters

llvm::SMLoc Loc = llvm::SMLoc()

virtual void EmitWinCFIStartProc(
    const llvm::MCSymbol* Symbol,
    llvm::SMLoc Loc = llvm::SMLoc())

Declared at: llvm/include/llvm/MC/MCStreamer.h:957

Parameters

const llvm::MCSymbol* Symbol
llvm::SMLoc Loc = llvm::SMLoc()

virtual void EmitWinEHHandler(
    const llvm::MCSymbol* Sym,
    bool Unwind,
    bool Except,
    llvm::SMLoc Loc = llvm::SMLoc())

Declared at: llvm/include/llvm/MC/MCStreamer.h:976

Parameters

const llvm::MCSymbol* Sym
bool Unwind
bool Except
llvm::SMLoc Loc = llvm::SMLoc()

virtual void EmitWinEHHandlerData(
    llvm::SMLoc Loc = llvm::SMLoc())

Declared at: llvm/include/llvm/MC/MCStreamer.h:978

Parameters

llvm::SMLoc Loc = llvm::SMLoc()

virtual void EmitWindowsUnwindTables()

Declared at: llvm/include/llvm/MC/MCStreamer.h:243

virtual void EmitXCOFFLocalCommonSymbol(
    llvm::MCSymbol* LabelSym,
    uint64_t Size,
    llvm::MCSymbol* CsectSym,
    unsigned int ByteAlignment)

Description

Emits an lcomm directive with XCOFF csect information.

Declared at: llvm/include/llvm/MC/MCStreamer.h:565

Parameters

llvm::MCSymbol* LabelSym
- Label on the block of storage.
uint64_t Size
- The size of the block of storage.
llvm::MCSymbol* CsectSym
- Csect name for the block of storage.
unsigned int ByteAlignment
- The alignment of the symbol in bytes. Must be a power of 2.

virtual void EmitZerofill(
    llvm::MCSection* Section,
    llvm::MCSymbol* Symbol = nullptr,
    uint64_t Size = 0,
    unsigned int ByteAlignment = 0,
    llvm::SMLoc Loc = llvm::SMLoc())

Description

Emit the zerofill section and an optional symbol.

Declared at: llvm/include/llvm/MC/MCStreamer.h:612

Parameters

llvm::MCSection* Section
- The zerofill section to create and or to put the symbol
llvm::MCSymbol* Symbol = nullptr
- The zerofill symbol to emit, if non-NULL.
uint64_t Size = 0
- The size of the zerofill symbol.
unsigned int ByteAlignment = 0
- The alignment of the zerofill symbol if non-zero. This must be a power of 2 on some targets.
llvm::SMLoc Loc = llvm::SMLoc()

void EmitZeros(uint64_t NumBytes)

Description

Emit NumBytes worth of zeros. This function properly handles data in virtual sections.

Declared at: llvm/include/llvm/MC/MCStreamer.h:752

Parameters

uint64_t NumBytes

virtual void EndCOFFSymbolDef()

Description

Marks the end of the symbol definition.

Declared at: llvm/include/llvm/MC/MCStreamer.h:536

WinEH::FrameInfo* EnsureValidWinFrameInfo(
    llvm::SMLoc Loc)

Description

Retreive the current frame info if one is available and it is not yet closed. Otherwise, issue an error and return null.

Declared at: llvm/include/llvm/MC/MCStreamer.h:286

Parameters

llvm::SMLoc Loc

void Finish()

Description

Finish emission of machine code.

Declared at: llvm/include/llvm/MC/MCStreamer.h:1030

virtual void FinishImpl()

Description

Streamer specific finalization.

Declared at: llvm/include/llvm/MC/MCStreamer.h:1028

virtual llvm::raw_ostream& GetCommentOS()

Description

Return a raw_ostream that comments can be written to. Unlike AddComment, you are required to terminate comments with \nif you use this method.

Declared at: llvm/include/llvm/MC/MCStreamer.h:333

unsigned int GetSymbolOrder(
    const llvm::MCSymbol* Sym) const

Description

Returns an index to represent the order a symbol was emitted in. (zero if we did not emit that symbol)

Declared at: llvm/include/llvm/MC/MCStreamer.h:373

Parameters

const llvm::MCSymbol* Sym

virtual void InitSections(bool NoExecStack)

Description

Create the default sections and set the initial one.

Declared at: llvm/include/llvm/MC/MCStreamer.h:436

Parameters

bool NoExecStack

MCStreamer(const llvm::MCStreamer&)

Declared at: llvm/include/llvm/MC/MCStreamer.h:251

Parameters

const llvm::MCStreamer&

MCStreamer(llvm::MCContext& Ctx)

Declared at: llvm/include/llvm/MC/MCStreamer.h:234

Parameters

llvm::MCContext& Ctx

bool PopSection()

Description

Restore the current and previous section from the section stack. Calls ChangeSection as needed. Returns false if the stack was empty.

Declared at: llvm/include/llvm/MC/MCStreamer.h:393

void PushSection()

Description

Save the current and previous section on the section stack.

Declared at: llvm/include/llvm/MC/MCStreamer.h:384

bool SubSection(const llvm::MCExpr* Subsection)

Declared at: llvm/include/llvm/MC/MCStreamer.h:408

Parameters

const llvm::MCExpr* Subsection

virtual void SwitchSection(
    llvm::MCSection* Section,
    const llvm::MCExpr* Subsection = nullptr)

Description

Set the current section where code is being emitted to \p Section. This is required to update CurSection. This corresponds to assembler directives like .section, .text, etc.

Declared at: llvm/include/llvm/MC/MCStreamer.h:420

Parameters

llvm::MCSection* Section
const llvm::MCExpr* Subsection = nullptr

void SwitchSectionNoChange(
    llvm::MCSection* Section,
    const llvm::MCExpr* Subsection = nullptr)

Description

Set the current section where code is being emitted to \p Section. This is required to update CurSection. This version does not call ChangeSection.

Declared at: llvm/include/llvm/MC/MCStreamer.h:426

Parameters

llvm::MCSection* Section
const llvm::MCExpr* Subsection = nullptr

virtual void addExplicitComment(
    const llvm::Twine& T)

Description

Add explicit comment T. T is required to be a valid comment in the output and does not need to be escaped.

Declared at: llvm/include/llvm/MC/MCStreamer.h:343

Parameters

const llvm::Twine& T

bool checkCVLocSection(unsigned int FuncId,
                       unsigned int FileNo,
                       llvm::SMLoc Loc)

Description

Returns true if the the .cv_loc directive is in the right section.

Declared at: llvm/include/llvm/MC/MCStreamer.h:248

Parameters

unsigned int FuncId
unsigned int FileNo
llvm::SMLoc Loc

virtual void emitAbsoluteSymbolDiff(
    const llvm::MCSymbol* Hi,
    const llvm::MCSymbol* Lo,
    unsigned int Size)

Description

Emit the absolute difference between two symbols.

Declared at: llvm/include/llvm/MC/MCStreamer.h:925

Parameters

const llvm::MCSymbol* Hi
const llvm::MCSymbol* Lo
unsigned int Size

virtual void emitAbsoluteSymbolDiffAsULEB128(
    const llvm::MCSymbol* Hi,
    const llvm::MCSymbol* Lo)

Description

Emit the absolute difference between two symbols encoded with ULEB128.

Declared at: llvm/include/llvm/MC/MCStreamer.h:929

Parameters

const llvm::MCSymbol* Hi
const llvm::MCSymbol* Lo

virtual void emitCGProfileEntry(
    const llvm::MCSymbolRefExpr* From,
    const llvm::MCSymbolRefExpr* To,
    uint64_t Count)

Declared at: llvm/include/llvm/MC/MCStreamer.h:980

Parameters

const llvm::MCSymbolRefExpr* From
const llvm::MCSymbolRefExpr* To
uint64_t Count

virtual void emitDwarfFile0Directive(
    llvm::StringRef Directory,
    llvm::StringRef Filename,
    Optional<MD5::MD5Result> Checksum,
    Optional<llvm::StringRef> Source,
    unsigned int CUID = 0)

Description

Specify the "root" file of the compilation, using the ".file 0" extension.

Declared at: llvm/include/llvm/MC/MCStreamer.h:838

Parameters

llvm::StringRef Directory
llvm::StringRef Filename
Optional<MD5::MD5Result> Checksum
Optional<llvm::StringRef> Source
unsigned int CUID = 0

virtual void emitELFSize(
    llvm::MCSymbol* Symbol,
    const llvm::MCExpr* Value)

Description

Emit an ELF .size directive. This corresponds to an assembler statement such as: .size symbol, expression

Declared at: llvm/include/llvm/MC/MCStreamer.h:573

Parameters

llvm::MCSymbol* Symbol
const llvm::MCExpr* Value

virtual void emitELFSymverDirective(
    llvm::StringRef AliasName,
    const llvm::MCSymbol* Aliasee)

Description

Emit an ELF .symver directive. This corresponds to an assembler statement such as: .symver _start, foo @ SOME_VERSION

Declared at: llvm/include/llvm/MC/MCStreamer.h:581

Parameters

llvm::StringRef AliasName
- The versioned alias (i.e. "foo@@SOME_VERSION")
const llvm::MCSymbol* Aliasee
- The aliased symbol (i.e. "_start")

virtual void emitExplicitComments()

Description

Emit added explicit comments.

Declared at: llvm/include/llvm/MC/MCStreamer.h:346

virtual void emitFill(
    const llvm::MCExpr& NumValues,
    int64_t Size,
    int64_t Expr,
    llvm::SMLoc Loc = llvm::SMLoc())

Description

Emit \p NumValues copies of \p Size bytes. Each \p Size bytes is taken from the lowest order 4 bytes of \p Expr expression. This is used to implement assembler directives such as .fill.

Declared at: llvm/include/llvm/MC/MCStreamer.h:747

Parameters

const llvm::MCExpr& NumValues
- The number of copies of \p Size bytes to emit.
int64_t Size
- The size (in bytes) of each repeated value.
int64_t Expr
- The expression from which \p Size bytes are used.
llvm::SMLoc Loc = llvm::SMLoc()

virtual void emitFill(
    const llvm::MCExpr& NumBytes,
    uint64_t FillValue,
    llvm::SMLoc Loc = llvm::SMLoc())

Description

Emit \p Size bytes worth of the value specified by \p FillValue. This is used to implement assembler directives such as .space or .skip.

Declared at: llvm/include/llvm/MC/MCStreamer.h:736

Parameters

const llvm::MCExpr& NumBytes
- The number of bytes to emit.
uint64_t FillValue
- The value to use when filling bytes.
llvm::SMLoc Loc = llvm::SMLoc()
- The location of the expression for error reporting.

void emitFill(uint64_t NumBytes,
              uint8_t FillValue)

Description

Emit NumBytes bytes worth of the value specified by FillValue. This implements directives such as '.space'.

Declared at: llvm/include/llvm/MC/MCStreamer.h:727

Parameters

uint64_t NumBytes
uint8_t FillValue

virtual void emitRawComment(const llvm::Twine& T,
                            bool TabPrefix = true)

Description

Print T and prefix it with the comment string (normally #) and optionally a tab. This prints the comment immediately, not at the end of the current line. It is basically a safe version of EmitRawText: since it only prints comments, the object streamer ignores it instead of asserting.

Declared at: llvm/include/llvm/MC/MCStreamer.h:339

Parameters

const llvm::Twine& T
bool TabPrefix = true

virtual void emitValueToOffset(
    const llvm::MCExpr* Offset,
    unsigned char Value,
    llvm::SMLoc Loc)

Description

Emit some number of copies of \p Value until the byte offset \p Offset is reached. This is used to implement assembler directives such as .org.

Declared at: llvm/include/llvm/MC/MCStreamer.h:796

Parameters

const llvm::MCExpr* Offset
- The offset to reach. This may be an expression, but the expression must be associated with the current section.
unsigned char Value
- The value to use when filling bytes.
llvm::SMLoc Loc

llvm::MCSymbol* endSection(
    llvm::MCSection* Section)

Declared at: llvm/include/llvm/MC/MCStreamer.h:438

Parameters

llvm::MCSection* Section

void generateCompactUnwindEncodings(
    llvm::MCAsmBackend* MAB)

Declared at: llvm/include/llvm/MC/MCStreamer.h:298

Parameters

llvm::MCAsmBackend* MAB

bool getAllowAutoPadding() const

Declared at: llvm/include/llvm/MC/MCStreamer.h:278

virtual llvm::MCAssembler* getAssemblerPtr()

Declared at: llvm/include/llvm/MC/MCStreamer.h:268

llvm::MCSection* getAssociatedPDataSection(
    const llvm::MCSection* TextSec)

Description

Get the .pdata section used for the given section. Typically the given section is either the main .text section or some other COMDAT .text section, but it may be any section containing code.

Declared at: llvm/include/llvm/MC/MCStreamer.h:986

Parameters

const llvm::MCSection* TextSec

llvm::MCSection* getAssociatedXDataSection(
    const llvm::MCSection* TextSec)

Description

Get the .xdata section used for the given section.

Declared at: llvm/include/llvm/MC/MCStreamer.h:989

Parameters

const llvm::MCSection* TextSec

llvm::MCContext& getContext() const

Declared at: llvm/include/llvm/MC/MCStreamer.h:266

llvm::MCSectionSubPair getCurrentSection() const

Description

Return the current section that the streamer is emitting code to.

Declared at: llvm/include/llvm/MC/MCStreamer.h:357

llvm::MCSection* getCurrentSectionOnly() const

Declared at: llvm/include/llvm/MC/MCStreamer.h:362

WinEH::FrameInfo* getCurrentWinFrameInfo()

Declared at: llvm/include/llvm/MC/MCStreamer.h:239

ArrayRef<llvm::MCDwarfFrameInfo>
getDwarfFrameInfos() const

Declared at: llvm/include/llvm/MC/MCStreamer.h:289

virtual llvm::MCSymbol* getDwarfLineTableSymbol(
    unsigned int CUID)

Declared at: llvm/include/llvm/MC/MCStreamer.h:932

Parameters

unsigned int CUID

unsigned int getNumFrameInfos()

Declared at: llvm/include/llvm/MC/MCStreamer.h:288

unsigned int getNumWinFrameInfos()

Declared at: llvm/include/llvm/MC/MCStreamer.h:293

llvm::MCSectionSubPair getPreviousSection() const

Description

Return the previous section that the streamer is emitting code to.

Declared at: llvm/include/llvm/MC/MCStreamer.h:365

llvm::MCTargetStreamer* getTargetStreamer()

Declared at: llvm/include/llvm/MC/MCStreamer.h:273

bool getUseAssemblerInfoForParsing()

Declared at: llvm/include/llvm/MC/MCStreamer.h:271

ArrayRef<std::unique_ptr<WinEH::FrameInfo>>
getWinFrameInfos() const

Declared at: llvm/include/llvm/MC/MCStreamer.h:294

virtual bool hasRawTextSupport() const

Description

Return true if this asm streamer supports emitting unformatted text to the .s file with EmitRawText.

Declared at: llvm/include/llvm/MC/MCStreamer.h:309

bool hasUnfinishedDwarfFrameInfo()

Declared at: llvm/include/llvm/MC/MCStreamer.h:291

virtual bool isIntegratedAssemblerRequired() const

Description

Is the integrated assembler required for this streamer to function correctly?

Declared at: llvm/include/llvm/MC/MCStreamer.h:313

virtual bool isVerboseAsm() const

Description

Return true if this streamer supports verbose assembly and if it is enabled.

Declared at: llvm/include/llvm/MC/MCStreamer.h:305

virtual bool mayHaveInstructions(
    llvm::MCSection& Sec) const

Declared at: llvm/include/llvm/MC/MCStreamer.h:1032

Parameters

llvm::MCSection& Sec

virtual void reset()

Description

State management

Declared at: llvm/include/llvm/MC/MCStreamer.h:264

void setAllowAutoPadding(bool v)

Declared at: llvm/include/llvm/MC/MCStreamer.h:277

Parameters

bool v

void setTargetStreamer(llvm::MCTargetStreamer* TS)

Declared at: llvm/include/llvm/MC/MCStreamer.h:258

Parameters

llvm::MCTargetStreamer* TS

void setUseAssemblerInfoForParsing(bool v)

Declared at: llvm/include/llvm/MC/MCStreamer.h:270

Parameters

bool v

virtual Expected<unsigned int>
tryEmitDwarfFileDirective(
    unsigned int FileNo,
    llvm::StringRef Directory,
    llvm::StringRef Filename,
    Optional<MD5::MD5Result> Checksum = None,
    Optional<llvm::StringRef> Source = None,
    unsigned int CUID = 0)

Description

Associate a filename with a specified logical file number. Also associate a directory, optional checksum, and optional source text with the logical file. This implements the DWARF2 '.file 4 "dir/foo.c"' assembler directive, and the DWARF5 '.file 4 "dir/foo.c" md5 "..." source "..."' assembler directive.

Declared at: llvm/include/llvm/MC/MCStreamer.h:832

Parameters

unsigned int FileNo
llvm::StringRef Directory
llvm::StringRef Filename
Optional<MD5::MD5Result> Checksum = None
Optional<llvm::StringRef> Source = None
unsigned int CUID = 0

void visitUsedExpr(const llvm::MCExpr& Expr)

Declared at: llvm/include/llvm/MC/MCStreamer.h:255

Parameters

const llvm::MCExpr& Expr

virtual void visitUsedSymbol(
    const llvm::MCSymbol& Sym)

Declared at: llvm/include/llvm/MC/MCStreamer.h:256

Parameters

const llvm::MCSymbol& Sym

virtual ~MCStreamer()

Declared at: llvm/include/llvm/MC/MCStreamer.h:253