LLVM: llvm::MCTargetExpr Class Reference (original) (raw)

Extension point for target-specific MCExpr subclasses to implement. More...

#include "[llvm/MC/MCExpr.h](MCExpr%5F8h%5Fsource.html)"

Public Member Functions
virtual void printImpl (raw_ostream &OS, const MCAsmInfo *MAI) const =0
virtual bool evaluateAsRelocatableImpl (MCValue &Res, const MCAssembler *Asm) const =0
virtual bool isEqualTo (const MCExpr *x) const
virtual bool inlineAssignedExpr () const
virtual void visitUsedExpr (MCStreamer &Streamer) const =0
virtual MCFragment * findAssociatedFragment () const =0
Public Member Functions inherited from llvm::MCExpr
MCExpr (const MCExpr &)=delete
MCExpr & operator= (const MCExpr &)=delete
ExprKind getKind () const
SMLoc getLoc () const
LLVM_ABI void dump () const
LLVM_ABI bool evaluateAsAbsolute (int64_t &Res) const
Try to evaluate the expression to an absolute value.
LLVM_ABI bool evaluateAsAbsolute (int64_t &Res, const MCAssembler &Asm) const
LLVM_ABI bool evaluateAsAbsolute (int64_t &Res, const MCAssembler *Asm) const
LLVM_ABI bool evaluateKnownAbsolute (int64_t &Res, const MCAssembler &Asm) const
Aggressive variant of evaluateAsRelocatable when relocations are unavailable (e.g.
LLVM_ABI bool evaluateAsRelocatable (MCValue &Res, const MCAssembler *Asm) const
Try to evaluate the expression to a relocatable value, i.e.
LLVM_ABI bool evaluateAsValue (MCValue &Res, const MCAssembler &Asm) const
Try to evaluate the expression to the form (a - b + constant) where neither a nor b are variables.
LLVM_ABI MCFragment * findAssociatedFragment () const
Find the "associated section" for this expression, which is currently defined as the absolute section for constants, or otherwise the section associated with the first defined symbol in the expression.
Protected Member Functions
MCTargetExpr ()
virtual ~MCTargetExpr ()=default
Protected Member Functions inherited from llvm::MCExpr
MCExpr (ExprKind Kind, SMLoc Loc, unsigned SubclassData=0)
LLVM_ABI bool evaluateAsRelocatableImpl (MCValue &Res, const MCAssembler *Asm, bool InSet) const
unsigned getSubclassData () const

Extension point for target-specific MCExpr subclasses to implement.

This can encode a relocation operator, serving as a replacement for MCSymbolRefExpr::VariantKind. Ideally, limit this to top-level use, avoiding its inclusion as a subexpression.

NOTE: All subclasses are required to have trivial destructors because MCExprs are bump pointer allocated and not destructed.

Definition at line 465 of file MCExpr.h.

llvm::MCTargetExpr::MCTargetExpr ( ) inlineprotected

~MCTargetExpr()

virtual llvm::MCTargetExpr::~MCTargetExpr ( ) protectedvirtualdefault

classof()

evaluateAsRelocatableImpl()

findAssociatedFragment()

virtual MCFragment * llvm::MCTargetExpr::findAssociatedFragment ( ) const pure virtual

inlineAssignedExpr()

virtual bool llvm::MCTargetExpr::inlineAssignedExpr ( ) const inlinevirtual

isEqualTo()

virtual bool llvm::MCTargetExpr::isEqualTo ( const MCExpr * x) const inlinevirtual

printImpl()

visitUsedExpr()

virtual void llvm::MCTargetExpr::visitUsedExpr ( MCStreamer & Streamer) const pure virtual

The documentation for this class was generated from the following files: