LLVM
8.0.1
|
#include "Target/NVPTX/NVPTXMCExpr.h"
Public Types | |
enum | VariantKind { VK_NVPTX_None, VK_NVPTX_HALF_PREC_FLOAT, VK_NVPTX_SINGLE_PREC_FLOAT, VK_NVPTX_DOUBLE_PREC_FLOAT } |
Public Types inherited from llvm::MCExpr | |
enum | ExprKind { Binary, Constant, SymbolRef, Unary, Target } |
Public Member Functions | |
void | printImpl (raw_ostream &OS, const MCAsmInfo *MAI) const override |
bool | evaluateAsRelocatableImpl (MCValue &Res, const MCAsmLayout *Layout, const MCFixup *Fixup) const override |
void | visitUsedExpr (MCStreamer &Streamer) const override |
MCFragment * | findAssociatedFragment () const override |
void | fixELFSymbolsInTLSFixups (MCAssembler &Asm) const override |
Accessors | |
VariantKind | getKind () const |
getOpcode - Get the kind of this expression. More... | |
APFloat | getAPFloat () const |
getSubExpr - Get the child of this expression. More... | |
Public Member Functions inherited from llvm::MCTargetExpr | |
virtual bool | isEqualTo (const MCExpr *x) const |
virtual bool | inlineAssignedExpr () const |
Public Member Functions inherited from llvm::MCExpr | |
MCExpr (const MCExpr &)=delete | |
MCExpr & | operator= (const MCExpr &)=delete |
ExprKind | getKind () const |
SMLoc | getLoc () const |
void | print (raw_ostream &OS, const MCAsmInfo *MAI, bool InParens=false) const |
void | dump () const |
bool | evaluateAsAbsolute (int64_t &Res, const MCAsmLayout &Layout, const SectionAddrMap &Addrs) const |
Try to evaluate the expression to an absolute value. More... | |
bool | evaluateAsAbsolute (int64_t &Res) const |
bool | evaluateAsAbsolute (int64_t &Res, const MCAssembler &Asm) const |
bool | evaluateAsAbsolute (int64_t &Res, const MCAssembler *Asm) const |
bool | evaluateAsAbsolute (int64_t &Res, const MCAsmLayout &Layout) const |
bool | evaluateKnownAbsolute (int64_t &Res, const MCAsmLayout &Layout) const |
bool | evaluateAsRelocatable (MCValue &Res, const MCAsmLayout *Layout, const MCFixup *Fixup) const |
Try to evaluate the expression to a relocatable value, i.e. More... | |
bool | evaluateAsValue (MCValue &Res, const MCAsmLayout &Layout) const |
Try to evaluate the expression to the form (a - b + constant) where neither a nor b are variables. More... | |
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. More... | |
Static Public Member Functions | |
static bool | classof (const MCExpr *E) |
Construction | |
static const NVPTXFloatMCExpr * | create (VariantKind Kind, const APFloat &Flt, MCContext &Ctx) |
static const NVPTXFloatMCExpr * | createConstantFPHalf (const APFloat &Flt, MCContext &Ctx) |
static const NVPTXFloatMCExpr * | createConstantFPSingle (const APFloat &Flt, MCContext &Ctx) |
static const NVPTXFloatMCExpr * | createConstantFPDouble (const APFloat &Flt, MCContext &Ctx) |
Static Public Member Functions inherited from llvm::MCTargetExpr | |
static bool | classof (const MCExpr *E) |
Additional Inherited Members | |
Protected Member Functions inherited from llvm::MCTargetExpr | |
MCTargetExpr () | |
virtual | ~MCTargetExpr ()=default |
Protected Member Functions inherited from llvm::MCExpr | |
MCExpr (ExprKind Kind, SMLoc Loc) | |
bool | evaluateAsRelocatableImpl (MCValue &Res, const MCAssembler *Asm, const MCAsmLayout *Layout, const MCFixup *Fixup, const SectionAddrMap *Addrs, bool InSet) const |
Definition at line 21 of file NVPTXMCExpr.h.
Enumerator | |
---|---|
VK_NVPTX_None | |
VK_NVPTX_HALF_PREC_FLOAT | |
VK_NVPTX_SINGLE_PREC_FLOAT | |
VK_NVPTX_DOUBLE_PREC_FLOAT |
Definition at line 23 of file NVPTXMCExpr.h.
Definition at line 83 of file NVPTXMCExpr.h.
References llvm::MCExpr::getKind(), and llvm::MCExpr::Target.
|
static |
Definition at line 20 of file NVPTXMCExpr.cpp.
Referenced by createConstantFPDouble(), createConstantFPHalf(), and createConstantFPSingle().
|
inlinestatic |
Definition at line 54 of file NVPTXMCExpr.h.
References create(), and VK_NVPTX_DOUBLE_PREC_FLOAT.
Referenced by VisitGlobalVariableForEmission().
|
inlinestatic |
Definition at line 44 of file NVPTXMCExpr.h.
References create(), and VK_NVPTX_HALF_PREC_FLOAT.
Referenced by VisitGlobalVariableForEmission().
|
inlinestatic |
Definition at line 49 of file NVPTXMCExpr.h.
References create(), and VK_NVPTX_SINGLE_PREC_FLOAT.
Referenced by VisitGlobalVariableForEmission().
|
inlineoverridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 72 of file NVPTXMCExpr.h.
|
inlineoverridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 78 of file NVPTXMCExpr.h.
|
inlineoverridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 81 of file NVPTXMCExpr.h.
|
inline |
getSubExpr - Get the child of this expression.
Definition at line 67 of file NVPTXMCExpr.h.
References printImpl().
Referenced by printImpl().
|
inline |
getOpcode - Get the kind of this expression.
Definition at line 64 of file NVPTXMCExpr.h.
|
overridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 24 of file NVPTXMCExpr.cpp.
References llvm::APFloat::bitcastToAPInt(), llvm::APFloat::convert(), llvm::format_hex_no_prefix(), getAPFloat(), llvm::APInt::getZExtValue(), llvm::APFloatBase::IEEEdouble(), llvm::APFloatBase::IEEEhalf(), llvm::APFloatBase::IEEEsingle(), llvm_unreachable, llvm::APFloatBase::rmNearestTiesToEven, VK_NVPTX_DOUBLE_PREC_FLOAT, VK_NVPTX_HALF_PREC_FLOAT, and VK_NVPTX_SINGLE_PREC_FLOAT.
Referenced by getAPFloat(), and llvm::NVPTXGenericMCSymbolRefExpr::getSymbolExpr().
|
inlineoverridevirtual |
Implements llvm::MCTargetExpr.
Definition at line 77 of file NVPTXMCExpr.h.