LLVM: lib/Target/NVPTX/NVPTXMCExpr.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11#ifndef LLVM_LIB_TARGET_NVPTX_NVPTXMCEXPR_H
12#define LLVM_LIB_TARGET_NVPTX_NVPTXMCEXPR_H
13
16#include
17
18namespace llvm {
19
21public:
29
30private:
31 const VariantKind Kind;
33
35 : Kind(Kind), Flt(std::move(Flt)) {}
36
37public:
38
39
40
41 static const NVPTXFloatMCExpr *create(VariantKind Kind, const APFloat &Flt,
42 MCContext &Ctx);
43
48
53
58
63
64
65
66
67
68
70
71
73
74
75
83
87};
88
89
90
91class NVPTXGenericMCSymbolRefExpr : public MCTargetExpr {
92private:
94
95 explicit NVPTXGenericMCSymbolRefExpr(const MCSymbolRefExpr *_SymExpr)
96 : SymExpr(_SymExpr) {}
97
98public:
99
100
101
102 static const NVPTXGenericMCSymbolRefExpr
104
105
106
107
108
109
111
112
113
121
125 };
126}
127
128#endif
This file declares a class to represent arbitrary precision floating point values and provide a varie...
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
This class is intended to be used as a base class for asm properties and features specific to the tar...
Context object for machine code objects.
Base class for the full range of assembler expressions which are needed for parsing.
@ Target
Target specific expression.
Streaming machine code generation interface.
Represent a reference to a symbol from inside an expression.
Definition NVPTXMCExpr.h:20
static const NVPTXFloatMCExpr * createConstantBFPHalf(const APFloat &Flt, MCContext &Ctx)
Definition NVPTXMCExpr.h:44
static const NVPTXFloatMCExpr * createConstantFPHalf(const APFloat &Flt, MCContext &Ctx)
Definition NVPTXMCExpr.h:49
VariantKind
Definition NVPTXMCExpr.h:22
@ VK_NVPTX_HALF_PREC_FLOAT
Definition NVPTXMCExpr.h:25
@ VK_NVPTX_BFLOAT_PREC_FLOAT
Definition NVPTXMCExpr.h:24
@ VK_NVPTX_DOUBLE_PREC_FLOAT
Definition NVPTXMCExpr.h:27
@ VK_NVPTX_None
Definition NVPTXMCExpr.h:23
@ VK_NVPTX_SINGLE_PREC_FLOAT
Definition NVPTXMCExpr.h:26
APFloat getAPFloat() const
getSubExpr - Get the child of this expression.
Definition NVPTXMCExpr.h:72
VariantKind getKind() const
getOpcode - Get the kind of this expression.
Definition NVPTXMCExpr.h:69
void visitUsedExpr(MCStreamer &Streamer) const override
Definition NVPTXMCExpr.h:81
static const NVPTXFloatMCExpr * createConstantFPSingle(const APFloat &Flt, MCContext &Ctx)
Definition NVPTXMCExpr.h:54
static const NVPTXFloatMCExpr * create(VariantKind Kind, const APFloat &Flt, MCContext &Ctx)
void printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const override
bool evaluateAsRelocatableImpl(MCValue &Res, const MCAssembler *Asm) const override
Definition NVPTXMCExpr.h:77
static const NVPTXFloatMCExpr * createConstantFPDouble(const APFloat &Flt, MCContext &Ctx)
Definition NVPTXMCExpr.h:59
static bool classof(const MCExpr *E)
Definition NVPTXMCExpr.h:84
MCFragment * findAssociatedFragment() const override
Definition NVPTXMCExpr.h:82
static const NVPTXGenericMCSymbolRefExpr * create(const MCSymbolRefExpr *SymExpr, MCContext &Ctx)
void visitUsedExpr(MCStreamer &Streamer) const override
Definition NVPTXMCExpr.h:119
MCFragment * findAssociatedFragment() const override
Definition NVPTXMCExpr.h:120
const MCSymbolRefExpr * getSymbolExpr() const
getOpcode - Get the kind of this expression.
Definition NVPTXMCExpr.h:110
bool evaluateAsRelocatableImpl(MCValue &Res, const MCAssembler *Asm) const override
Definition NVPTXMCExpr.h:115
void printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const override
static bool classof(const MCExpr *E)
Definition NVPTXMCExpr.h:122
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
Implement std::hash so that hash_code can be used in STL containers.