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

Methods

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&)

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)

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)

Declared at: llvm/include/llvm/MC/MCAssembler.h:441

Parameters

llvm::StringRef FileName

llvm::MCAssembler::const_iterator begin() const

Declared at: llvm/include/llvm/MC/MCAssembler.h:334

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

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

Declared at: llvm/include/llvm/MC/MCAssembler.h:402

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

Declared at: llvm/include/llvm/MC/MCAssembler.h:407

llvm::MCAssembler::data_region_iterator
data_region_end()

Declared at: llvm/include/llvm/MC/MCAssembler.h:406

size_t data_region_size() const

Declared at: llvm/include/llvm/MC/MCAssembler.h:411

void dump() const

Description

@ }

Declared at: llvm/include/llvm/MC/MCAssembler.h:453

llvm::MCAssembler::iterator end()

Declared at: llvm/include/llvm/MC/MCAssembler.h:336

llvm::MCAssembler::const_iterator end() const

Declared at: llvm/include/llvm/MC/MCAssembler.h:337

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

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

llvm::MCAsmBackend* getBackendPtr() const

Declared at: llvm/include/llvm/MC/MCAssembler.h:283

unsigned int getBundleAlignSize() const

Declared at: llvm/include/llvm/MC/MCAssembler.h:322

llvm::MCContext& getContext() const

Declared at: llvm/include/llvm/MC/MCAssembler.h:281

llvm::MCDwarfLineTableParams
getDWARFLinetableParams() const

Declared at: llvm/include/llvm/MC/MCAssembler.h:295

std::vector<DataRegionData>& getDataRegions()

Description

@ } @ {

Declared at: llvm/include/llvm/MC/MCAssembler.h:399

unsigned int getELFHeaderEFlags() const

Description

ELF e_header flags

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

llvm::MCCodeEmitter& getEmitter() const

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

llvm::MCCodeEmitter* getEmitterPtr() const

Declared at: llvm/include/llvm/MC/MCAssembler.h:285

ArrayRef<std::string> getFileNames()

Declared at: llvm/include/llvm/MC/MCAssembler.h:439

std::vector<IndirectSymbolData>&
getIndirectSymbols()

Description

@ } @ {

Declared at: llvm/include/llvm/MC/MCAssembler.h:364

const llvm::MCLOHContainer& getLOHContainer()
    const

Declared at: llvm/include/llvm/MC/MCAssembler.h:421

llvm::MCLOHContainer& getLOHContainer()

Description

@ } @ {

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

std::vector<std::vector<std::string>>&
getLinkerOptions()

Description

@ } @ {

Declared at: llvm/include/llvm/MC/MCAssembler.h:388

bool getRelaxAll() const

Declared at: llvm/include/llvm/MC/MCAssembler.h:317

bool getSubsectionsViaSymbols() const

Declared at: llvm/include/llvm/MC/MCAssembler.h:307

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

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

llvm::MCObjectWriter* getWriterPtr() const

Declared at: llvm/include/llvm/MC/MCAssembler.h:287

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()

Declared at: llvm/include/llvm/MC/MCAssembler.h:368

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()

Declared at: llvm/include/llvm/MC/MCAssembler.h:375

size_t indirect_symbol_size() const

Declared at: llvm/include/llvm/MC/MCAssembler.h:382

bool isBundlingEnabled() const

Declared at: llvm/include/llvm/MC/MCAssembler.h:320

bool isIncrementalLinkerCompatible() const

Declared at: llvm/include/llvm/MC/MCAssembler.h:310

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

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)

Declared at: llvm/include/llvm/MC/MCAssembler.h:304

Parameters

llvm::MCAsmLayout& Layout

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)

Declared at: llvm/include/llvm/MC/MCAssembler.h:437

Parameters

const llvm::MCSymbol& Symbol
bool* Created = nullptr

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())

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)

Declared at: llvm/include/llvm/MC/MCAssembler.h:324

Parameters

unsigned int Size

void setDWARFLinetableParams(
    llvm::MCDwarfLineTableParams P)

Declared at: llvm/include/llvm/MC/MCAssembler.h:296

Parameters

llvm::MCDwarfLineTableParams P

void setELFHeaderEFlags(unsigned int Flags)

Declared at: llvm/include/llvm/MC/MCAssembler.h:252

Parameters

unsigned int Flags

void setIncrementalLinkerCompatible(bool Value)

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

Parameters

bool Value

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)

Declared at: llvm/include/llvm/MC/MCAssembler.h:318

Parameters

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())

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

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

llvm::MCAssembler::symbol_iterator symbol_begin()

Description

@ } @ {

Declared at: llvm/include/llvm/MC/MCAssembler.h:344

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

Declared at: llvm/include/llvm/MC/MCAssembler.h:348

llvm::MCAssembler::symbol_iterator symbol_end()

Declared at: llvm/include/llvm/MC/MCAssembler.h:347

size_t symbol_size() const

Declared at: llvm/include/llvm/MC/MCAssembler.h:355

llvm::MCAssembler::const_symbol_range symbols()
    const

Declared at: llvm/include/llvm/MC/MCAssembler.h:351

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

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

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()

Declared at: llvm/include/llvm/MC/MCAssembler.h:223