class MCAssembler
Declaration
class MCAssembler { /* full declaration omitted */ };
Declared at: llvm/include/llvm/MC/MCAssembler.h:60
Member Variables
- public std::vector<std::pair<StringRef, const MCSymbol*>> Symvers
- public std::vector<CGProfileEntry> CGProfile
Method Overview
- public void Finish()
- public MCAssembler(const llvm::MCAssembler &)
- public MCAssembler(llvm::MCContext & Context, std::unique_ptr<MCAsmBackend> Backend, std::unique_ptr<MCCodeEmitter> Emitter, std::unique_ptr<MCObjectWriter> Writer)
- public void addFileName(llvm::StringRef FileName)
- public llvm::MCAssembler::const_iterator begin() const
- public llvm::MCAssembler::iterator begin()
- public uint64_t computeFragmentSize(const llvm::MCAsmLayout & Layout, const llvm::MCFragment & F) const
- public llvm::MCAssembler::const_data_region_iterator data_region_begin() const
- public llvm::MCAssembler::data_region_iterator data_region_begin()
- public llvm::MCAssembler::const_data_region_iterator data_region_end() const
- public llvm::MCAssembler::data_region_iterator data_region_end()
- public size_t data_region_size() const
- public void dump() const
- public llvm::MCAssembler::iterator end()
- public llvm::MCAssembler::const_iterator end() const
- public const llvm::MCSymbol * getAtom(const llvm::MCSymbol & S) const
- public llvm::MCAsmBackend & getBackend() const
- public llvm::MCAsmBackend * getBackendPtr() const
- public unsigned int getBundleAlignSize() const
- public llvm::MCContext & getContext() const
- public llvm::MCDwarfLineTableParams getDWARFLinetableParams() const
- public std::vector<DataRegionData> & getDataRegions()
- public unsigned int getELFHeaderEFlags() const
- public llvm::MCCodeEmitter & getEmitter() const
- public llvm::MCCodeEmitter * getEmitterPtr() const
- public ArrayRef<std::string> getFileNames()
- public std::vector<IndirectSymbolData> & getIndirectSymbols()
- public const llvm::MCLOHContainer & getLOHContainer() const
- public llvm::MCLOHContainer & getLOHContainer()
- public std::vector<std::vector<std::string>> & getLinkerOptions()
- public bool getRelaxAll() const
- public bool getSubsectionsViaSymbols() const
- public const llvm::MCAssembler::VersionInfoType & getVersionInfo() const
- public llvm::MCObjectWriter & getWriter() const
- public llvm::MCObjectWriter * getWriterPtr() const
- public llvm::MCAssembler::const_indirect_symbol_iterator indirect_symbol_begin() const
- public llvm::MCAssembler::indirect_symbol_iterator indirect_symbol_begin()
- public llvm::MCAssembler::const_indirect_symbol_iterator indirect_symbol_end() const
- public llvm::MCAssembler::indirect_symbol_iterator indirect_symbol_end()
- public size_t indirect_symbol_size() const
- public bool isBundlingEnabled() const
- public bool isIncrementalLinkerCompatible() const
- public bool isSymbolLinkerVisible(const llvm::MCSymbol & SD) const
- public bool isThumbFunc(const llvm::MCSymbol * Func) const
- public void layout(llvm::MCAsmLayout & Layout)
- public bool registerSection(llvm::MCSection & Section)
- public void registerSymbol(const llvm::MCSymbol & Symbol, bool * Created = nullptr)
- public void reset()
- public void setBuildVersion(MachO::PlatformType Platform, unsigned int Major, unsigned int Minor, unsigned int Update, llvm::VersionTuple SDKVersion = llvm::VersionTuple())
- public void setBundleAlignSize(unsigned int Size)
- public void setDWARFLinetableParams(llvm::MCDwarfLineTableParams P)
- public void setELFHeaderEFlags(unsigned int Flags)
- public void setIncrementalLinkerCompatible(bool Value)
- public void setIsThumbFunc(const llvm::MCSymbol * Func)
- public void setRelaxAll(bool Value)
- public void setSubsectionsViaSymbols(bool Value)
- public void setVersionMin(llvm::MCVersionMinType Type, unsigned int Major, unsigned int Minor, unsigned int Update, llvm::VersionTuple SDKVersion = llvm::VersionTuple())
- public size_t size() const
- public llvm::MCAssembler::symbol_iterator symbol_begin()
- public llvm::MCAssembler::const_symbol_iterator symbol_begin() const
- public llvm::MCAssembler::const_symbol_iterator symbol_end() const
- public llvm::MCAssembler::symbol_iterator symbol_end()
- public size_t symbol_size() const
- public llvm::MCAssembler::const_symbol_range symbols() const
- public llvm::MCAssembler::symbol_range symbols()
- public void writeFragmentPadding(llvm::raw_ostream & OS, const llvm::MCEncodedFragment & F, uint64_t FSize) const
- public void writeSectionData(llvm::raw_ostream & OS, const llvm::MCSection * Section, const llvm::MCAsmLayout & Layout) const
- public ~MCAssembler()
Methods
¶void Finish()
void Finish()
Description
Finish - Do final processing and write the object to the output stream.\p Writer is used for custom object writer (as the MCJIT does), if not specified it is automatically created from backend.
Declared at: llvm/include/llvm/MC/MCAssembler.h:301
¶MCAssembler(const llvm::MCAssembler&)
MCAssembler(const llvm::MCAssembler&)
Declared at: llvm/include/llvm/MC/MCAssembler.h:221
Parameters
- const llvm::MCAssembler&
¶MCAssembler(
llvm::MCContext& Context,
std::unique_ptr<MCAsmBackend> Backend,
std::unique_ptr<MCCodeEmitter> Emitter,
std::unique_ptr<MCObjectWriter> Writer)
MCAssembler(
llvm::MCContext& Context,
std::unique_ptr<MCAsmBackend> Backend,
std::unique_ptr<MCCodeEmitter> Emitter,
std::unique_ptr<MCObjectWriter> Writer)
Description
Construct a new assembler instance.
Declared at: llvm/include/llvm/MC/MCAssembler.h:218
Parameters
- llvm::MCContext& Context
- std::unique_ptr<MCAsmBackend> Backend
- std::unique_ptr<MCCodeEmitter> Emitter
- std::unique_ptr<MCObjectWriter> Writer
¶void addFileName(llvm::StringRef FileName)
void addFileName(llvm::StringRef FileName)
Declared at: llvm/include/llvm/MC/MCAssembler.h:441
Parameters
- llvm::StringRef FileName
¶llvm::MCAssembler::const_iterator begin() const
llvm::MCAssembler::const_iterator begin() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:334
¶llvm::MCAssembler::iterator begin()
llvm::MCAssembler::iterator begin()
Description
@ {
Declared at: llvm/include/llvm/MC/MCAssembler.h:333
¶uint64_t computeFragmentSize(
const llvm::MCAsmLayout& Layout,
const llvm::MCFragment& F) const
uint64_t computeFragmentSize(
const llvm::MCAsmLayout& Layout,
const llvm::MCFragment& F) const
Description
Compute the effective fragment size assuming it is laid out at the given\p SectionAddress and \p FragmentOffset.
Declared at: llvm/include/llvm/MC/MCAssembler.h:227
Parameters
- const llvm::MCAsmLayout& Layout
- const llvm::MCFragment& F
¶llvm::MCAssembler::const_data_region_iterator
data_region_begin() const
llvm::MCAssembler::const_data_region_iterator
data_region_begin() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:402
¶llvm::MCAssembler::data_region_iterator
data_region_begin()
llvm::MCAssembler::data_region_iterator
data_region_begin()
Declared at: llvm/include/llvm/MC/MCAssembler.h:401
¶llvm::MCAssembler::const_data_region_iterator
data_region_end() const
llvm::MCAssembler::const_data_region_iterator
data_region_end() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:407
¶llvm::MCAssembler::data_region_iterator
data_region_end()
llvm::MCAssembler::data_region_iterator
data_region_end()
Declared at: llvm/include/llvm/MC/MCAssembler.h:406
¶size_t data_region_size() const
size_t data_region_size() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:411
¶void dump() const
void dump() const
Description
@ }
Declared at: llvm/include/llvm/MC/MCAssembler.h:453
¶llvm::MCAssembler::iterator end()
llvm::MCAssembler::iterator end()
Declared at: llvm/include/llvm/MC/MCAssembler.h:336
¶llvm::MCAssembler::const_iterator end() const
llvm::MCAssembler::const_iterator end() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:337
¶const llvm::MCSymbol* getAtom(
const llvm::MCSymbol& S) const
const llvm::MCSymbol* getAtom(
const llvm::MCSymbol& S) const
Description
Find the symbol which defines the atom containing the given symbol, or null if there is no such symbol.
Declared at: llvm/include/llvm/MC/MCAssembler.h:232
Parameters
- const llvm::MCSymbol& S
¶llvm::MCAsmBackend& getBackend() const
llvm::MCAsmBackend& getBackend() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:289
¶llvm::MCAsmBackend* getBackendPtr() const
llvm::MCAsmBackend* getBackendPtr() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:283
¶unsigned int getBundleAlignSize() const
unsigned int getBundleAlignSize() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:322
¶llvm::MCContext& getContext() const
llvm::MCContext& getContext() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:281
¶llvm::MCDwarfLineTableParams
getDWARFLinetableParams() const
llvm::MCDwarfLineTableParams
getDWARFLinetableParams() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:295
¶std::vector<DataRegionData>& getDataRegions()
std::vector<DataRegionData>& getDataRegions()
Description
@ } @ {
Declared at: llvm/include/llvm/MC/MCAssembler.h:399
¶unsigned int getELFHeaderEFlags() const
unsigned int getELFHeaderEFlags() const
Description
ELF e_header flags
Declared at: llvm/include/llvm/MC/MCAssembler.h:251
¶llvm::MCCodeEmitter& getEmitter() const
llvm::MCCodeEmitter& getEmitter() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:291
¶llvm::MCCodeEmitter* getEmitterPtr() const
llvm::MCCodeEmitter* getEmitterPtr() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:285
¶ArrayRef<std::string> getFileNames()
ArrayRef<std::string> getFileNames()
Declared at: llvm/include/llvm/MC/MCAssembler.h:439
¶std::vector<IndirectSymbolData>&
getIndirectSymbols()
std::vector<IndirectSymbolData>&
getIndirectSymbols()
Description
@ } @ {
Declared at: llvm/include/llvm/MC/MCAssembler.h:364
¶const llvm::MCLOHContainer& getLOHContainer()
const
const llvm::MCLOHContainer& getLOHContainer()
const
Declared at: llvm/include/llvm/MC/MCAssembler.h:421
¶llvm::MCLOHContainer& getLOHContainer()
llvm::MCLOHContainer& getLOHContainer()
Description
@ } @ {
Declared at: llvm/include/llvm/MC/MCAssembler.h:420
¶std::vector<std::vector<std::string>>&
getLinkerOptions()
std::vector<std::vector<std::string>>&
getLinkerOptions()
Description
@ } @ {
Declared at: llvm/include/llvm/MC/MCAssembler.h:388
¶bool getRelaxAll() const
bool getRelaxAll() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:317
¶bool getSubsectionsViaSymbols() const
bool getSubsectionsViaSymbols() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:307
¶const llvm::MCAssembler::VersionInfoType&
getVersionInfo() const
const llvm::MCAssembler::VersionInfoType&
getVersionInfo() const
Description
MachO deployment target version information.
Declared at: llvm/include/llvm/MC/MCAssembler.h:255
¶llvm::MCObjectWriter& getWriter() const
llvm::MCObjectWriter& getWriter() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:293
¶llvm::MCObjectWriter* getWriterPtr() const
llvm::MCObjectWriter* getWriterPtr() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:287
¶llvm::MCAssembler::const_indirect_symbol_iterator
indirect_symbol_begin() const
llvm::MCAssembler::const_indirect_symbol_iterator
indirect_symbol_begin() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:371
¶llvm::MCAssembler::indirect_symbol_iterator
indirect_symbol_begin()
llvm::MCAssembler::indirect_symbol_iterator
indirect_symbol_begin()
Declared at: llvm/include/llvm/MC/MCAssembler.h:368
¶llvm::MCAssembler::const_indirect_symbol_iterator
indirect_symbol_end() const
llvm::MCAssembler::const_indirect_symbol_iterator
indirect_symbol_end() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:378
¶llvm::MCAssembler::indirect_symbol_iterator
indirect_symbol_end()
llvm::MCAssembler::indirect_symbol_iterator
indirect_symbol_end()
Declared at: llvm/include/llvm/MC/MCAssembler.h:375
¶size_t indirect_symbol_size() const
size_t indirect_symbol_size() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:382
¶bool isBundlingEnabled() const
bool isBundlingEnabled() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:320
¶bool isIncrementalLinkerCompatible() const
bool isIncrementalLinkerCompatible() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:310
¶bool isSymbolLinkerVisible(
const llvm::MCSymbol& SD) const
bool isSymbolLinkerVisible(
const llvm::MCSymbol& SD) const
Description
Check whether a particular symbol is visible to the linker and is required in the symbol table, or whether it can be discarded by the assembler. This also effects whether the assembler treats the label as potentially defining a separate atom.
Declared at: llvm/include/llvm/MC/MCAssembler.h:238
Parameters
- const llvm::MCSymbol& SD
¶bool isThumbFunc(const llvm::MCSymbol* Func) const
bool isThumbFunc(const llvm::MCSymbol* Func) const
Description
Check whether a given symbol has been flagged with .thumb_func.
Declared at: llvm/include/llvm/MC/MCAssembler.h:245
Parameters
- const llvm::MCSymbol* Func
¶void layout(llvm::MCAsmLayout& Layout)
void layout(llvm::MCAsmLayout& Layout)
Declared at: llvm/include/llvm/MC/MCAssembler.h:304
Parameters
- llvm::MCAsmLayout& Layout
¶bool registerSection(llvm::MCSection& Section)
bool registerSection(llvm::MCSection& Section)
Description
@ } @ {
Declared at: llvm/include/llvm/MC/MCAssembler.h:435
Parameters
- llvm::MCSection& Section
¶void registerSymbol(const llvm::MCSymbol& Symbol,
bool* Created = nullptr)
void registerSymbol(const llvm::MCSymbol& Symbol,
bool* Created = nullptr)
Declared at: llvm/include/llvm/MC/MCAssembler.h:437
Parameters
- const llvm::MCSymbol& Symbol
- bool* Created = nullptr
¶void reset()
void reset()
Description
Reuse an assembler instance
Declared at: llvm/include/llvm/MC/MCAssembler.h:279
¶void setBuildVersion(
MachO::PlatformType Platform,
unsigned int Major,
unsigned int Minor,
unsigned int Update,
llvm::VersionTuple SDKVersion =
llvm::VersionTuple())
void setBuildVersion(
MachO::PlatformType Platform,
unsigned int Major,
unsigned int Minor,
unsigned int Update,
llvm::VersionTuple SDKVersion =
llvm::VersionTuple())
Declared at: llvm/include/llvm/MC/MCAssembler.h:266
Parameters
- MachO::PlatformType Platform
- unsigned int Major
- unsigned int Minor
- unsigned int Update
- llvm::VersionTuple SDKVersion = llvm::VersionTuple()
¶void setBundleAlignSize(unsigned int Size)
void setBundleAlignSize(unsigned int Size)
Declared at: llvm/include/llvm/MC/MCAssembler.h:324
Parameters
- unsigned int Size
¶void setDWARFLinetableParams(
llvm::MCDwarfLineTableParams P)
void setDWARFLinetableParams(
llvm::MCDwarfLineTableParams P)
Declared at: llvm/include/llvm/MC/MCAssembler.h:296
Parameters
¶void setELFHeaderEFlags(unsigned int Flags)
void setELFHeaderEFlags(unsigned int Flags)
Declared at: llvm/include/llvm/MC/MCAssembler.h:252
Parameters
- unsigned int Flags
¶void setIncrementalLinkerCompatible(bool Value)
void setIncrementalLinkerCompatible(bool Value)
Declared at: llvm/include/llvm/MC/MCAssembler.h:313
Parameters
- bool Value
¶void setIsThumbFunc(const llvm::MCSymbol* Func)
void setIsThumbFunc(const llvm::MCSymbol* Func)
Description
Flag a function symbol as the target of a .thumb_func directive.
Declared at: llvm/include/llvm/MC/MCAssembler.h:248
Parameters
- const llvm::MCSymbol* Func
¶void setRelaxAll(bool Value)
void setRelaxAll(bool Value)
Declared at: llvm/include/llvm/MC/MCAssembler.h:318
Parameters
- bool Value
¶void setSubsectionsViaSymbols(bool Value)
void setSubsectionsViaSymbols(bool Value)
Declared at: llvm/include/llvm/MC/MCAssembler.h:308
Parameters
- bool Value
¶void setVersionMin(llvm::MCVersionMinType Type,
unsigned int Major,
unsigned int Minor,
unsigned int Update,
llvm::VersionTuple SDKVersion =
llvm::VersionTuple())
void setVersionMin(llvm::MCVersionMinType Type,
unsigned int Major,
unsigned int Minor,
unsigned int Update,
llvm::VersionTuple SDKVersion =
llvm::VersionTuple())
Declared at: llvm/include/llvm/MC/MCAssembler.h:256
Parameters
- llvm::MCVersionMinType Type
- unsigned int Major
- unsigned int Minor
- unsigned int Update
- llvm::VersionTuple SDKVersion = llvm::VersionTuple()
¶size_t size() const
size_t size() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:339
¶llvm::MCAssembler::symbol_iterator symbol_begin()
llvm::MCAssembler::symbol_iterator symbol_begin()
Description
@ } @ {
Declared at: llvm/include/llvm/MC/MCAssembler.h:344
¶llvm::MCAssembler::const_symbol_iterator
symbol_begin() const
llvm::MCAssembler::const_symbol_iterator
symbol_begin() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:345
¶llvm::MCAssembler::const_symbol_iterator
symbol_end() const
llvm::MCAssembler::const_symbol_iterator
symbol_end() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:348
¶llvm::MCAssembler::symbol_iterator symbol_end()
llvm::MCAssembler::symbol_iterator symbol_end()
Declared at: llvm/include/llvm/MC/MCAssembler.h:347
¶size_t symbol_size() const
size_t symbol_size() const
Declared at: llvm/include/llvm/MC/MCAssembler.h:355
¶llvm::MCAssembler::const_symbol_range symbols()
const
llvm::MCAssembler::const_symbol_range symbols()
const
Declared at: llvm/include/llvm/MC/MCAssembler.h:351
¶llvm::MCAssembler::symbol_range symbols()
llvm::MCAssembler::symbol_range symbols()
Declared at: llvm/include/llvm/MC/MCAssembler.h:350
¶void writeFragmentPadding(
llvm::raw_ostream& OS,
const llvm::MCEncodedFragment& F,
uint64_t FSize) const
void writeFragmentPadding(
llvm::raw_ostream& OS,
const llvm::MCEncodedFragment& F,
uint64_t FSize) const
Description
Write the necessary bundle padding to \p OS. Expects a fragment \p F containing instructions and its size \p FSize.
Declared at: llvm/include/llvm/MC/MCAssembler.h:448
Parameters
- llvm::raw_ostream& OS
- const llvm::MCEncodedFragment& F
- uint64_t FSize
¶void writeSectionData(
llvm::raw_ostream& OS,
const llvm::MCSection* Section,
const llvm::MCAsmLayout& Layout) const
void writeSectionData(
llvm::raw_ostream& OS,
const llvm::MCSection* Section,
const llvm::MCAsmLayout& Layout) const
Description
Emit the section contents to \p OS.
Declared at: llvm/include/llvm/MC/MCAssembler.h:241
Parameters
- llvm::raw_ostream& OS
- const llvm::MCSection* Section
- const llvm::MCAsmLayout& Layout
¶~MCAssembler()
~MCAssembler()
Declared at: llvm/include/llvm/MC/MCAssembler.h:223