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
- public virtual void AddBlankLine()
- public virtual void AddComment(const llvm::Twine & T, bool EOL = true)
- public void AssignFragment(llvm::MCSymbol * Symbol, llvm::MCFragment * Fragment)
- public virtual void BeginCOFFSymbolDef(const llvm::MCSymbol * Symbol)
- public virtual void ChangeSection(llvm::MCSection *, const llvm::MCExpr *)
- public virtual void EmitAddrsig()
- public virtual void EmitAddrsigSym(const llvm::MCSymbol * Sym)
- public virtual void EmitAssemblerFlag(llvm::MCAssemblerFlag Flag)
- public virtual void EmitAssignment(llvm::MCSymbol * Symbol, const llvm::MCExpr * Value)
- public virtual void EmitBinaryData(llvm::StringRef Data)
- public virtual void EmitBuildVersion(unsigned int Platform, unsigned int Major, unsigned int Minor, unsigned int Update, llvm::VersionTuple SDKVersion)
- public virtual void EmitBundleAlignMode(unsigned int AlignPow2)
- public virtual void EmitBundleLock(bool AlignToEnd)
- public virtual void EmitBundleUnlock()
- public virtual void EmitBytes(llvm::StringRef Data)
- public virtual void EmitCFIAdjustCfaOffset(int64_t Adjustment)
- public virtual void EmitCFIBKeyFrame()
- public virtual void EmitCFIDefCfa(int64_t Register, int64_t Offset)
- public virtual void EmitCFIDefCfaOffset(int64_t Offset)
- public virtual void EmitCFIDefCfaRegister(int64_t Register)
- public void EmitCFIEndProc()
- protected virtual void EmitCFIEndProcImpl(llvm::MCDwarfFrameInfo & CurFrame)
- public virtual void EmitCFIEscape(llvm::StringRef Values)
- public virtual void EmitCFIGnuArgsSize(int64_t Size)
- public virtual llvm::MCSymbol * EmitCFILabel()
- public virtual void EmitCFILsda(const llvm::MCSymbol * Sym, unsigned int Encoding)
- public virtual void EmitCFINegateRAState()
- public virtual void EmitCFIOffset(int64_t Register, int64_t Offset)
- public virtual void EmitCFIPersonality(const llvm::MCSymbol * Sym, unsigned int Encoding)
- public virtual void EmitCFIRegister(int64_t Register1, int64_t Register2)
- public virtual void EmitCFIRelOffset(int64_t Register, int64_t Offset)
- public virtual void EmitCFIRememberState()
- public virtual void EmitCFIRestore(int64_t Register)
- public virtual void EmitCFIRestoreState()
- public virtual void EmitCFIReturnColumn(int64_t Register)
- public virtual void EmitCFISameValue(int64_t Register)
- public virtual void EmitCFISections(bool EH, bool Debug)
- public virtual void EmitCFISignalFrame()
- public void EmitCFIStartProc(bool IsSimple, llvm::SMLoc Loc = llvm::SMLoc())
- protected virtual void EmitCFIStartProcImpl(llvm::MCDwarfFrameInfo & Frame)
- public virtual void EmitCFIUndefined(int64_t Register)
- public virtual void EmitCFIWindowSave()
- public virtual void EmitCOFFImgRel32(const llvm::MCSymbol * Symbol, int64_t Offset)
- public virtual void EmitCOFFSafeSEH(const llvm::MCSymbol * Symbol)
- public virtual void EmitCOFFSecRel32(const llvm::MCSymbol * Symbol, uint64_t Offset)
- public virtual void EmitCOFFSectionIndex(const llvm::MCSymbol * Symbol)
- public virtual void EmitCOFFSymbolIndex(const llvm::MCSymbol * Symbol)
- public virtual void EmitCOFFSymbolStorageClass(int StorageClass)
- public virtual void EmitCOFFSymbolType(int Type)
- public virtual void EmitCVDefRangeDirective(ArrayRef<std::pair<const MCSymbol *, const MCSymbol *>> Ranges, llvm::StringRef FixedSizePortion)
- public virtual void EmitCVDefRangeDirective(ArrayRef<std::pair<const MCSymbol *, const MCSymbol *>> Ranges, codeview::DefRangeRegisterRelHeader DRHdr)
- public virtual void EmitCVDefRangeDirective(ArrayRef<std::pair<const MCSymbol *, const MCSymbol *>> Ranges, codeview::DefRangeSubfieldRegisterHeader DRHdr)
- public virtual void EmitCVDefRangeDirective(ArrayRef<std::pair<const MCSymbol *, const MCSymbol *>> Ranges, codeview::DefRangeRegisterHeader DRHdr)
- public virtual void EmitCVDefRangeDirective(ArrayRef<std::pair<const MCSymbol *, const MCSymbol *>> Ranges, codeview::DefRangeFramePointerRelHeader DRHdr)
- public virtual void EmitCVFPOData(const llvm::MCSymbol * ProcSym, llvm::SMLoc Loc = {})
- public virtual void EmitCVFileChecksumOffsetDirective(unsigned int FileNo)
- public virtual void EmitCVFileChecksumsDirective()
- public virtual bool EmitCVFileDirective(unsigned int FileNo, llvm::StringRef Filename, ArrayRef<uint8_t> Checksum, unsigned int ChecksumKind)
- public virtual bool EmitCVFuncIdDirective(unsigned int FunctionId)
- public virtual void EmitCVInlineLinetableDirective(unsigned int PrimaryFunctionId, unsigned int SourceFileId, unsigned int SourceLineNum, const llvm::MCSymbol * FnStartSym, const llvm::MCSymbol * FnEndSym)
- public virtual bool EmitCVInlineSiteIdDirective(unsigned int FunctionId, unsigned int IAFunc, unsigned int IAFile, unsigned int IALine, unsigned int IACol, llvm::SMLoc Loc)
- public virtual void EmitCVLinetableDirective(unsigned int FunctionId, const llvm::MCSymbol * FnStart, const llvm::MCSymbol * FnEnd)
- public 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)
- public virtual void EmitCVStringTableDirective()
- public virtual void EmitCodeAlignment(unsigned int ByteAlignment, unsigned int MaxBytesToEmit = 0)
- public virtual void EmitCodePaddingBasicBlockEnd(const llvm::MCCodePaddingContext & Context)
- public virtual void EmitCodePaddingBasicBlockStart(const llvm::MCCodePaddingContext & Context)
- public virtual void EmitCommonSymbol(llvm::MCSymbol * Symbol, uint64_t Size, unsigned int ByteAlignment)
- public virtual void EmitDTPRel32Value(const llvm::MCExpr * Value)
- public virtual void EmitDTPRel64Value(const llvm::MCExpr * Value)
- public virtual void EmitDataRegion(llvm::MCDataRegionType Kind)
- public 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)
- public virtual void EmitDwarfLocDirective(unsigned int FileNo, unsigned int Line, unsigned int Column, unsigned int Flags, unsigned int Isa, unsigned int Discriminator, llvm::StringRef FileName)
- public virtual void EmitEHSymAttributes(const llvm::MCSymbol * Symbol, llvm::MCSymbol * EHSymbol)
- public virtual void EmitFileDirective(llvm::StringRef Filename)
- public virtual void EmitGPRel32Value(const llvm::MCExpr * Value)
- public virtual void EmitGPRel64Value(const llvm::MCExpr * Value)
- public virtual void EmitIdent(llvm::StringRef IdentString)
- public virtual void EmitInstruction(const llvm::MCInst & Inst, const llvm::MCSubtargetInfo & STI)
- public virtual void EmitIntValue(uint64_t Value, unsigned int Size)
- public virtual void EmitIntValueInHex(uint64_t Value, unsigned int Size)
- public virtual void EmitLOHDirective(llvm::MCLOHType Kind, const llvm::MCLOHArgs & Args)
- public virtual void EmitLabel(llvm::MCSymbol * Symbol, llvm::SMLoc Loc = llvm::SMLoc())
- public virtual void EmitLinkerOptions(ArrayRef<std::string> Kind)
- public virtual void EmitLocalCommonSymbol(llvm::MCSymbol * Symbol, uint64_t Size, unsigned int ByteAlignment)
- public void EmitRawText(const llvm::Twine & String)
- protected virtual void EmitRawTextImpl(llvm::StringRef String)
- public virtual bool EmitRelocDirective(const llvm::MCExpr & Offset, llvm::StringRef Name, const llvm::MCExpr * Expr, llvm::SMLoc Loc, const llvm::MCSubtargetInfo & STI)
- public void EmitSLEB128IntValue(int64_t Value)
- public virtual void EmitSLEB128Value(const llvm::MCExpr * Value)
- public virtual bool EmitSymbolAttribute(llvm::MCSymbol * Symbol, llvm::MCSymbolAttr Attribute)
- public virtual void EmitSymbolDesc(llvm::MCSymbol * Symbol, unsigned int DescValue)
- public void EmitSymbolValue(const llvm::MCSymbol * Sym, unsigned int Size, bool IsSectionRelative = false)
- public virtual void EmitSyntaxDirective()
- public virtual void EmitTBSSSymbol(llvm::MCSection * Section, llvm::MCSymbol * Symbol, uint64_t Size, unsigned int ByteAlignment = 0)
- public virtual void EmitTPRel32Value(const llvm::MCExpr * Value)
- public virtual void EmitTPRel64Value(const llvm::MCExpr * Value)
- public virtual void EmitThumbFunc(llvm::MCSymbol * Func)
- public void EmitULEB128IntValue(uint64_t Value, unsigned int PadTo = 0)
- public virtual void EmitULEB128Value(const llvm::MCExpr * Value)
- public void EmitValue(const llvm::MCExpr * Value, unsigned int Size, llvm::SMLoc Loc = llvm::SMLoc())
- public virtual void EmitValueImpl(const llvm::MCExpr * Value, unsigned int Size, llvm::SMLoc Loc = llvm::SMLoc())
- public virtual void EmitValueToAlignment(unsigned int ByteAlignment, int64_t Value = 0, unsigned int ValueSize = 1, unsigned int MaxBytesToEmit = 0)
- public void EmitVersionForTarget(const llvm::Triple & Target, const llvm::VersionTuple & SDKVersion)
- public virtual void EmitVersionMin(llvm::MCVersionMinType Type, unsigned int Major, unsigned int Minor, unsigned int Update, llvm::VersionTuple SDKVersion)
- public virtual void EmitWeakReference(llvm::MCSymbol * Alias, const llvm::MCSymbol * Symbol)
- public virtual void EmitWinCFIAllocStack(unsigned int Size, llvm::SMLoc Loc = llvm::SMLoc())
- public virtual void EmitWinCFIEndChained(llvm::SMLoc Loc = llvm::SMLoc())
- public virtual void EmitWinCFIEndProc(llvm::SMLoc Loc = llvm::SMLoc())
- public virtual void EmitWinCFIEndProlog(llvm::SMLoc Loc = llvm::SMLoc())
- public virtual void EmitWinCFIFuncletOrFuncEnd(llvm::SMLoc Loc = llvm::SMLoc())
- public virtual void EmitWinCFIPushFrame(bool Code, llvm::SMLoc Loc = llvm::SMLoc())
- public virtual void EmitWinCFIPushReg(llvm::MCRegister Register, llvm::SMLoc Loc = llvm::SMLoc())
- public virtual void EmitWinCFISaveReg(llvm::MCRegister Register, unsigned int Offset, llvm::SMLoc Loc = llvm::SMLoc())
- public virtual void EmitWinCFISaveXMM(llvm::MCRegister Register, unsigned int Offset, llvm::SMLoc Loc = llvm::SMLoc())
- public virtual void EmitWinCFISetFrame(llvm::MCRegister Register, unsigned int Offset, llvm::SMLoc Loc = llvm::SMLoc())
- public virtual void EmitWinCFIStartChained(llvm::SMLoc Loc = llvm::SMLoc())
- public virtual void EmitWinCFIStartProc(const llvm::MCSymbol * Symbol, llvm::SMLoc Loc = llvm::SMLoc())
- public virtual void EmitWinEHHandler(const llvm::MCSymbol * Sym, bool Unwind, bool Except, llvm::SMLoc Loc = llvm::SMLoc())
- public virtual void EmitWinEHHandlerData(llvm::SMLoc Loc = llvm::SMLoc())
- protected virtual void EmitWindowsUnwindTables()
- public virtual void EmitXCOFFLocalCommonSymbol(llvm::MCSymbol * LabelSym, uint64_t Size, llvm::MCSymbol * CsectSym, unsigned int ByteAlignment)
- public virtual void EmitZerofill(llvm::MCSection * Section, llvm::MCSymbol * Symbol = nullptr, uint64_t Size = 0, unsigned int ByteAlignment = 0, llvm::SMLoc Loc = llvm::SMLoc())
- public void EmitZeros(uint64_t NumBytes)
- public virtual void EndCOFFSymbolDef()
- public WinEH::FrameInfo * EnsureValidWinFrameInfo(llvm::SMLoc Loc)
- public void Finish()
- public virtual void FinishImpl()
- public virtual llvm::raw_ostream & GetCommentOS()
- public unsigned int GetSymbolOrder(const llvm::MCSymbol * Sym) const
- public virtual void InitSections(bool NoExecStack)
- public MCStreamer(const llvm::MCStreamer &)
- protected MCStreamer(llvm::MCContext & Ctx)
- public bool PopSection()
- public void PushSection()
- public bool SubSection(const llvm::MCExpr * Subsection)
- public virtual void SwitchSection(llvm::MCSection * Section, const llvm::MCExpr * Subsection = nullptr)
- public void SwitchSectionNoChange(llvm::MCSection * Section, const llvm::MCExpr * Subsection = nullptr)
- public virtual void addExplicitComment(const llvm::Twine & T)
- protected bool checkCVLocSection(unsigned int FuncId, unsigned int FileNo, llvm::SMLoc Loc)
- public virtual void emitAbsoluteSymbolDiff(const llvm::MCSymbol * Hi, const llvm::MCSymbol * Lo, unsigned int Size)
- public virtual void emitAbsoluteSymbolDiffAsULEB128(const llvm::MCSymbol * Hi, const llvm::MCSymbol * Lo)
- public virtual void emitCGProfileEntry(const llvm::MCSymbolRefExpr * From, const llvm::MCSymbolRefExpr * To, uint64_t Count)
- public virtual void emitDwarfFile0Directive(llvm::StringRef Directory, llvm::StringRef Filename, Optional<MD5::MD5Result> Checksum, Optional<llvm::StringRef> Source, unsigned int CUID = 0)
- public virtual void emitELFSize(llvm::MCSymbol * Symbol, const llvm::MCExpr * Value)
- public virtual void emitELFSymverDirective(llvm::StringRef AliasName, const llvm::MCSymbol * Aliasee)
- public virtual void emitExplicitComments()
- public virtual void emitFill(const llvm::MCExpr & NumValues, int64_t Size, int64_t Expr, llvm::SMLoc Loc = llvm::SMLoc())
- public virtual void emitFill(const llvm::MCExpr & NumBytes, uint64_t FillValue, llvm::SMLoc Loc = llvm::SMLoc())
- public void emitFill(uint64_t NumBytes, uint8_t FillValue)
- public virtual void emitRawComment(const llvm::Twine & T, bool TabPrefix = true)
- public virtual void emitValueToOffset(const llvm::MCExpr * Offset, unsigned char Value, llvm::SMLoc Loc)
- public llvm::MCSymbol * endSection(llvm::MCSection * Section)
- public void generateCompactUnwindEncodings(llvm::MCAsmBackend * MAB)
- public bool getAllowAutoPadding() const
- public virtual llvm::MCAssembler * getAssemblerPtr()
- public llvm::MCSection * getAssociatedPDataSection(const llvm::MCSection * TextSec)
- public llvm::MCSection * getAssociatedXDataSection(const llvm::MCSection * TextSec)
- public llvm::MCContext & getContext() const
- public llvm::MCSectionSubPair getCurrentSection() const
- public llvm::MCSection * getCurrentSectionOnly() const
- protected WinEH::FrameInfo * getCurrentWinFrameInfo()
- public ArrayRef<llvm::MCDwarfFrameInfo> getDwarfFrameInfos() const
- public virtual llvm::MCSymbol * getDwarfLineTableSymbol(unsigned int CUID)
- public unsigned int getNumFrameInfos()
- public unsigned int getNumWinFrameInfos()
- public llvm::MCSectionSubPair getPreviousSection() const
- public llvm::MCTargetStreamer * getTargetStreamer()
- public bool getUseAssemblerInfoForParsing()
- public ArrayRef<std::unique_ptr<WinEH::FrameInfo>> getWinFrameInfos() const
- public virtual bool hasRawTextSupport() const
- public bool hasUnfinishedDwarfFrameInfo()
- public virtual bool isIntegratedAssemblerRequired() const
- public virtual bool isVerboseAsm() const
- public virtual bool mayHaveInstructions(llvm::MCSection & Sec) const
- public virtual void reset()
- public void setAllowAutoPadding(bool v)
- public void setTargetStreamer(llvm::MCTargetStreamer * TS)
- public void setUseAssemblerInfoForParsing(bool v)
- public 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)
- public void visitUsedExpr(const llvm::MCExpr & Expr)
- public virtual void visitUsedSymbol(const llvm::MCSymbol & Sym)
- public virtual ~MCStreamer()
Methods
¶virtual void AddBlankLine()
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)
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)
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)
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*)
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()
virtual void EmitAddrsig()
Declared at: llvm/include/llvm/MC/MCStreamer.h:1002
¶virtual void EmitAddrsigSym(
const llvm::MCSymbol* Sym)
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)
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)
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)
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)
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)
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)
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()
virtual void EmitBundleUnlock()
Description
Ends a bundle-locked group.
Declared at: llvm/include/llvm/MC/MCStreamer.h:1020
¶virtual void EmitBytes(llvm::StringRef Data)
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)
virtual void EmitCFIAdjustCfaOffset(
int64_t Adjustment)
Declared at: llvm/include/llvm/MC/MCStreamer.h:947
Parameters
- int64_t Adjustment
¶virtual void EmitCFIBKeyFrame()
virtual void EmitCFIBKeyFrame()
Declared at: llvm/include/llvm/MC/MCStreamer.h:843
¶virtual void EmitCFIDefCfa(int64_t Register,
int64_t Offset)
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)
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)
virtual void EmitCFIDefCfaRegister(
int64_t Register)
Declared at: llvm/include/llvm/MC/MCStreamer.h:938
Parameters
- int64_t Register
¶void EmitCFIEndProc()
void EmitCFIEndProc()
Declared at: llvm/include/llvm/MC/MCStreamer.h:935
¶virtual void EmitCFIEndProcImpl(
llvm::MCDwarfFrameInfo& CurFrame)
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)
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)
virtual void EmitCFIGnuArgsSize(int64_t Size)
Declared at: llvm/include/llvm/MC/MCStreamer.h:950
Parameters
- int64_t Size
¶virtual llvm::MCSymbol* EmitCFILabel()
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)
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()
virtual void EmitCFINegateRAState()
Declared at: llvm/include/llvm/MC/MCStreamer.h:955
¶virtual void EmitCFIOffset(int64_t Register,
int64_t Offset)
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)
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)
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)
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()
virtual void EmitCFIRememberState()
Declared at: llvm/include/llvm/MC/MCStreamer.h:942
¶virtual void EmitCFIRestore(int64_t Register)
virtual void EmitCFIRestore(int64_t Register)
Declared at: llvm/include/llvm/MC/MCStreamer.h:945
Parameters
- int64_t Register
¶virtual void EmitCFIRestoreState()
virtual void EmitCFIRestoreState()
Declared at: llvm/include/llvm/MC/MCStreamer.h:943
¶virtual void EmitCFIReturnColumn(int64_t Register)
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)
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)
virtual void EmitCFISections(bool EH, bool Debug)
Declared at: llvm/include/llvm/MC/MCStreamer.h:933
Parameters
- bool EH
- bool Debug
¶virtual void EmitCFISignalFrame()
virtual void EmitCFISignalFrame()
Declared at: llvm/include/llvm/MC/MCStreamer.h:951
¶void EmitCFIStartProc(
bool IsSimple,
llvm::SMLoc Loc = llvm::SMLoc())
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)
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)
virtual void EmitCFIUndefined(int64_t Register)
Declared at: llvm/include/llvm/MC/MCStreamer.h:952
Parameters
- int64_t Register
¶virtual void EmitCFIWindowSave()
virtual void EmitCFIWindowSave()
Declared at: llvm/include/llvm/MC/MCStreamer.h:954
¶virtual void EmitCOFFImgRel32(
const llvm::MCSymbol* Symbol,
int64_t Offset)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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 = {})
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)
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()
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)
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)
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)
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)
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)
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)
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()
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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())
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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()
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)
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)
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)
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)
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)
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)
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())
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())
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)
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)
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)
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)
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())
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())
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())
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())
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())
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())
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())
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())
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())
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())
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())
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())
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())
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())
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()
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)
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())
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)
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()
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)
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()
void Finish()
Description
Finish emission of machine code.
Declared at: llvm/include/llvm/MC/MCStreamer.h:1030
¶virtual void FinishImpl()
virtual void FinishImpl()
Description
Streamer specific finalization.
Declared at: llvm/include/llvm/MC/MCStreamer.h:1028
¶virtual llvm::raw_ostream& GetCommentOS()
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
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)
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&)
MCStreamer(const llvm::MCStreamer&)
Declared at: llvm/include/llvm/MC/MCStreamer.h:251
Parameters
- const llvm::MCStreamer&
¶MCStreamer(llvm::MCContext& Ctx)
MCStreamer(llvm::MCContext& Ctx)
Declared at: llvm/include/llvm/MC/MCStreamer.h:234
Parameters
- llvm::MCContext& Ctx
¶bool PopSection()
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()
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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()
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())
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())
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)
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)
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)
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)
llvm::MCSymbol* endSection(
llvm::MCSection* Section)
Declared at: llvm/include/llvm/MC/MCStreamer.h:438
Parameters
- llvm::MCSection* Section
¶void generateCompactUnwindEncodings(
llvm::MCAsmBackend* MAB)
void generateCompactUnwindEncodings(
llvm::MCAsmBackend* MAB)
Declared at: llvm/include/llvm/MC/MCStreamer.h:298
Parameters
- llvm::MCAsmBackend* MAB
¶bool getAllowAutoPadding() const
bool getAllowAutoPadding() const
Declared at: llvm/include/llvm/MC/MCStreamer.h:278
¶virtual llvm::MCAssembler* getAssemblerPtr()
virtual llvm::MCAssembler* getAssemblerPtr()
Declared at: llvm/include/llvm/MC/MCStreamer.h:268
¶llvm::MCSection* getAssociatedPDataSection(
const llvm::MCSection* TextSec)
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)
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
llvm::MCContext& getContext() const
Declared at: llvm/include/llvm/MC/MCStreamer.h:266
¶llvm::MCSectionSubPair getCurrentSection() const
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
llvm::MCSection* getCurrentSectionOnly() const
Declared at: llvm/include/llvm/MC/MCStreamer.h:362
¶WinEH::FrameInfo* getCurrentWinFrameInfo()
WinEH::FrameInfo* getCurrentWinFrameInfo()
Declared at: llvm/include/llvm/MC/MCStreamer.h:239
¶ArrayRef<llvm::MCDwarfFrameInfo>
getDwarfFrameInfos() const
ArrayRef<llvm::MCDwarfFrameInfo>
getDwarfFrameInfos() const
Declared at: llvm/include/llvm/MC/MCStreamer.h:289
¶virtual llvm::MCSymbol* getDwarfLineTableSymbol(
unsigned int CUID)
virtual llvm::MCSymbol* getDwarfLineTableSymbol(
unsigned int CUID)
Declared at: llvm/include/llvm/MC/MCStreamer.h:932
Parameters
- unsigned int CUID
¶unsigned int getNumFrameInfos()
unsigned int getNumFrameInfos()
Declared at: llvm/include/llvm/MC/MCStreamer.h:288
¶unsigned int getNumWinFrameInfos()
unsigned int getNumWinFrameInfos()
Declared at: llvm/include/llvm/MC/MCStreamer.h:293
¶llvm::MCSectionSubPair getPreviousSection() const
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()
llvm::MCTargetStreamer* getTargetStreamer()
Declared at: llvm/include/llvm/MC/MCStreamer.h:273
¶bool getUseAssemblerInfoForParsing()
bool getUseAssemblerInfoForParsing()
Declared at: llvm/include/llvm/MC/MCStreamer.h:271
¶ArrayRef<std::unique_ptr<WinEH::FrameInfo>>
getWinFrameInfos() const
ArrayRef<std::unique_ptr<WinEH::FrameInfo>>
getWinFrameInfos() const
Declared at: llvm/include/llvm/MC/MCStreamer.h:294
¶virtual bool hasRawTextSupport() const
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()
bool hasUnfinishedDwarfFrameInfo()
Declared at: llvm/include/llvm/MC/MCStreamer.h:291
¶virtual bool isIntegratedAssemblerRequired() const
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
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
virtual bool mayHaveInstructions(
llvm::MCSection& Sec) const
Declared at: llvm/include/llvm/MC/MCStreamer.h:1032
Parameters
- llvm::MCSection& Sec
¶virtual void reset()
virtual void reset()
Description
State management
Declared at: llvm/include/llvm/MC/MCStreamer.h:264
¶void setAllowAutoPadding(bool v)
void setAllowAutoPadding(bool v)
Declared at: llvm/include/llvm/MC/MCStreamer.h:277
Parameters
- bool v
¶void setTargetStreamer(llvm::MCTargetStreamer* TS)
void setTargetStreamer(llvm::MCTargetStreamer* TS)
Declared at: llvm/include/llvm/MC/MCStreamer.h:258
Parameters
¶void setUseAssemblerInfoForParsing(bool v)
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)
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)
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)
virtual void visitUsedSymbol(
const llvm::MCSymbol& Sym)
Declared at: llvm/include/llvm/MC/MCStreamer.h:256
Parameters
- const llvm::MCSymbol& Sym
¶virtual ~MCStreamer()
virtual ~MCStreamer()
Declared at: llvm/include/llvm/MC/MCStreamer.h:253