LLVM: lib/Target/NVPTX/NVPTXTargetMachine.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13#ifndef LLVM_LIB_TARGET_NVPTX_NVPTXTARGETMACHINE_H
14#define LLVM_LIB_TARGET_NVPTX_NVPTXTARGETMACHINE_H
15
18#include
19#include
20
21namespace llvm {
22
23
24
26 bool is64bit;
27 std::unique_ptr TLOF;
30
31
34
35public:
38 std::optionalReloc::Model RM,
40 bool is64bit);
43 return &Subtarget;
44 }
46 bool is64Bit() const { return is64bit; }
51
53
54
56 bool = true) override {
57 return true;
58 }
60 return TLOF.get();
61 }
62
66
68
70
72
76
77 std::pair<const Value *, unsigned>
79};
80
82 virtual void anchor();
83
84public:
87 std::optionalReloc::Model RM,
89 bool JIT);
90};
91
93 virtual void anchor();
94
95public:
98 std::optionalReloc::Model RM,
100 bool JIT);
101};
102
103}
104
105#endif
PassBuilder PB(Machine, PassOpts->PTO, std::nullopt, &PIC)
A manager for alias analyses.
CodeGenTargetMachineImpl(const Target &T, StringRef DataLayoutString, const Triple &TT, StringRef CPU, StringRef FS, const TargetOptions &Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOptLevel OL)
Context object for machine code objects.
NVPTXTargetMachine32(const Target &T, const Triple &TT, StringRef CPU, StringRef FS, const TargetOptions &Options, std::optional< Reloc::Model > RM, std::optional< CodeModel::Model > CM, CodeGenOptLevel OL, bool JIT)
NVPTXTargetMachine64(const Target &T, const Triple &TT, StringRef CPU, StringRef FS, const TargetOptions &Options, std::optional< Reloc::Model > RM, std::optional< CodeModel::Model > CM, CodeGenOptLevel OL, bool JIT)
TargetLoweringObjectFile * getObjFileLowering() const override
Definition NVPTXTargetMachine.h:59
TargetTransformInfo getTargetTransformInfo(const Function &F) const override
Get a TargetTransformInfo implementation for the target.
bool is64Bit() const
Definition NVPTXTargetMachine.h:46
std::pair< const Value *, unsigned > getPredicatedAddrSpace(const Value *V) const override
If the specified predicate checks whether a generic pointer falls within a specified address space,...
void registerPassBuilderCallbacks(PassBuilder &PB) override
Allow the target to modify the pass pipeline.
void registerEarlyDefaultAliasAnalyses(AAManager &AAM) override
Allow the target to register early alias analyses (AA before BasicAA) with the AAManager for use with...
const NVPTXSubtarget * getSubtargetImpl() const
Definition NVPTXTargetMachine.h:45
bool addPassesToEmitMC(PassManagerBase &, MCContext *&, raw_pwrite_stream &, bool=true) override
Add passes to the specified pass manager to get machine code emitted with the MCJIT.
Definition NVPTXTargetMachine.h:55
~NVPTXTargetMachine() override
NVPTX::DrvInterface getDrvInterface() const
Definition NVPTXTargetMachine.h:47
NVPTXTargetMachine(const Target &T, const Triple &TT, StringRef CPU, StringRef FS, const TargetOptions &Options, std::optional< Reloc::Model > RM, std::optional< CodeModel::Model > CM, CodeGenOptLevel OP, bool is64bit)
bool isMachineVerifierClean() const override
Returns true if the target is expected to pass all machine verifier checks.
Definition NVPTXTargetMachine.h:73
MachineFunctionInfo * createMachineFunctionInfo(BumpPtrAllocator &Allocator, const Function &F, const TargetSubtargetInfo *STI) const override
Create the target's instance of MachineFunctionInfo.
TargetPassConfig * createPassConfig(PassManagerBase &PM) override
Create a pass configuration object to be used by addPassToEmitX methods for generating a pipeline of ...
const NVPTXSubtarget * getSubtargetImpl(const Function &) const override
Virtual method implemented by subclasses that returns a reference to that target's TargetSubtargetInf...
Definition NVPTXTargetMachine.h:42
UniqueStringSaver & getStrPool() const
Definition NVPTXTargetMachine.h:48
This class provides access to building LLVM's passes.
StringRef - Represent a constant reference to a string, i.e.
std::unique_ptr< const MCSubtargetInfo > STI
Target-Independent Code Generator Pass Configuration Options.
TargetSubtargetInfo - Generic base class for all target subtargets.
This pass provides access to the codegen interfaces that are needed for IR-level transformations.
Target - Wrapper for Target specific information.
Triple - Helper class for working with autoconf configuration names.
Saves strings in the provided stable storage and returns a StringRef with a stable character pointer.
LLVM Value Representation.
PassManagerBase - An abstract interface to allow code to add passes to a pass manager without having ...
An abstract base class for streams implementations that also support a pwrite operation.
This is an optimization pass for GlobalISel generic memory operations.
CodeGenOptLevel
Code generation optimization level.
BumpPtrAllocatorImpl<> BumpPtrAllocator
The standard BumpPtrAllocator which just uses the default template parameters.
MachineFunctionInfo - This class can be derived from and used by targets to hold private target-speci...