|
LLVM 24.0.0git
|
Extension point for target-specific MCExpr subclasses to implement. More...
#include "llvm/MC/MCExpr.h"
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. | |
Static Public Member Functions | |
| static bool | classof (const MCExpr *E) |
| Static Public Member Functions inherited from llvm::MCExpr | |
| static LLVM_ABI bool | evaluateSymbolicAdd (const MCAssembler *, bool, const MCValue &, const MCValue &, MCValue &) |
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 |
Additional Inherited Members | |
| Public Types inherited from llvm::MCExpr | |
| enum | ExprKind : uint8_t { Binary , Constant , SymbolRef , Unary , Specifier , Target } |
| Protected Types inherited from llvm::MCExpr | |
| using | Spec = uint16_t |
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.
|
inlineprotected |
Definition at line 468 of file MCExpr.h.
References llvm::MCExpr::MCExpr(), and llvm::MCExpr::Target.
|
protectedvirtualdefault |
Definition at line 483 of file MCExpr.h.
References E(), llvm::MCExpr::MCExpr(), and llvm::MCExpr::Target.
|
pure virtual |
|
pure virtual |
|
inlinevirtual |
Reimplemented in llvm::X86MCExpr.
Reimplemented in llvm::X86MCExpr.
Definition at line 476 of file MCExpr.h.
References llvm::MCExpr::MCExpr().
|
pure virtual |
|
pure virtual |
Implemented in llvm::AMDGPUMCExpr, llvm::HexagonMCExpr, llvm::NVPTXFloatMCExpr, llvm::NVPTXGenericMCSymbolRefExpr, llvm::X86MCExpr, MCCOFFSectionNumberTargetExpr, and MCCOFFSectionOffsetTargetExpr.
References Streamer.