|
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 |
| 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.
|
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.