53 if (CP == ConstantPools.
end())
60 AssemblerConstantPools::getOrCreateConstantPool(
MCSection *Section) {
75 CPE = ConstantPools.
end();
std::vector< std::pair< MCSection *, ConstantPool > >::iterator iterator
Instances of this class represent a uniqued identifier for a section in the current translation unit...
void push_back(const T &Elt)
const MCExpr * addEntry(MCStreamer &Streamer, const MCExpr *Expr, unsigned Size)
static const MCSymbolRefExpr * create(const MCSymbol *Symbol, MCContext &Ctx)
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
MCSectionSubPair getCurrentSection() const
Return the current section that the streamer is emitting code to.
Base class for the full range of assembler expressions which are needed for parsing.
MCContext & getContext() const
Context object for machine code objects.
bool LLVM_ATTRIBUTE_UNUSED_RESULT empty() const
const MCExpr * addEntry(const MCExpr *Value, MCContext &Context, unsigned Size)
iterator find(const KeyT &Key)
Streaming machine code generation interface.
MCSymbol * createTempSymbol(bool CanBeUnnamed=true)
Create and return a new assembler temporary symbol with a unique but unspecified name.
virtual void SwitchSection(MCSection *Section, const MCExpr *Subsection=nullptr)
Set the current section where code is being emitted to Section.
void emitForCurrentSection(MCStreamer &Streamer)
virtual void EmitDataRegion(MCDataRegionType Kind)
Note in the output the specified region Kind.
void emitAll(MCStreamer &Streamer)
static void emitConstantPool(MCStreamer &Streamer, MCSection *Section, ConstantPool &CP)
virtual void EmitLabel(MCSymbol *Symbol)
Emit a label for Symbol into the current section.
virtual void EmitCodeAlignment(unsigned ByteAlignment, unsigned MaxBytesToEmit=0)
Emit nops until the byte alignment ByteAlignment is reached.
void emitEntries(MCStreamer &Streamer)
void EmitValue(const MCExpr *Value, unsigned Size, const SMLoc &Loc=SMLoc())
LLVM Value Representation.