Go to the documentation of this file.
13 #ifndef LLVM_CLANG_LIB_BASIC_TARGETS_NVPTX_H
14 #define LLVM_CLANG_LIB_BASIC_TARGETS_NVPTX_H
19 #include "llvm/ADT/Triple.h"
20 #include "llvm/Support/Compiler.h"
64 std::unique_ptr<TargetInfo> HostTarget;
68 unsigned TargetPointerWidth);
78 const std::vector<std::string> &FeaturesVec)
const override {
80 Features[
"ptx" + std::to_string(PTXVersion)] =
true;
84 bool hasFeature(StringRef Feature)
const override;
135 auto &Opts = getSupportedOpenCLOpts();
136 Opts[
"cl_clang_storage_class_specifiers"] =
true;
137 Opts[
"__cl_clang_function_pointers"] =
true;
138 Opts[
"__cl_clang_variadic_functions"] =
true;
139 Opts[
"__cl_clang_non_portable_kernel_param_types"] =
true;
140 Opts[
"__cl_clang_bitfields"] =
true;
142 Opts[
"cl_khr_fp64"] =
true;
143 Opts[
"__opencl_c_fp64"] =
true;
144 Opts[
"cl_khr_byte_addressable_store"] =
true;
145 Opts[
"cl_khr_global_int32_base_atomics"] =
true;
146 Opts[
"cl_khr_global_int32_extended_atomics"] =
true;
147 Opts[
"cl_khr_local_int32_base_atomics"] =
true;
148 Opts[
"cl_khr_local_int32_extended_atomics"] =
true;
152 return llvm::omp::NVPTXGridValues;
161 std::optional<unsigned>
175 return HostTarget->checkCallingConvention(CC);
185 #endif // LLVM_CLANG_LIB_BASIC_TARGETS_NVPTX_H
void fillValidCPUList(SmallVectorImpl< StringRef > &Values) const override
Fill a SmallVectorImpl with the valid values to setCPU.
bool hasBitIntType() const override
Determine whether the _BitInt type is supported on this target.
bool hasBFloat16Type() const override
Determine whether the _BFloat16 type is supported on this target.
Concrete class used by the front-end to report problems and issues.
Exposes information about the current target.
CudaArch StringToCudaArch(llvm::StringRef S)
BuiltinVaListKind
The different kinds of __builtin_va_list types defined by the target implementation.
bool validateAsmConstraint(const char *&Name, TargetInfo::ConstraintInfo &Info) const override
CallingConvCheckResult checkCallingConvention(CallingConv CC) const override
Determines whether a given calling convention is valid for the target.
bool setCPU(const std::string &Name) override
Target the specified CPU.
virtual bool initFeatureMap(llvm::StringMap< bool > &Features, DiagnosticsEngine &Diags, StringRef CPU, const std::vector< std::string > &FeatureVec) const
Initialize the map with the default set of target features for the CPU this should include all legal ...
static const char *const GCCRegNames[]
CallingConv
CallingConv - Specifies the calling convention that a function uses.
void setSupportedOpenCLOpts() override
Set supported OpenCL extensions and optional core features.
BuiltinVaListKind getBuiltinVaListKind() const override
Returns the kind of __builtin_va_list type that should be used with this target.
static const int NVPTXDWARFAddrSpaceMap[]
The DWARF address class.
@ CharPtrBuiltinVaList
typedef char* __builtin_va_list;
const char * CudaArchToString(CudaArch A)
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
ArrayRef< TargetInfo::GCCRegAlias > getGCCRegAliases() const override
std::optional< unsigned > getDWARFAddressSpace(unsigned AddressSpace) const override
bool isValidCPUName(StringRef Name) const override
brief Determine whether this TargetInfo supports the given CPU name.
Options for controlling the target.
static const unsigned NVPTXAddrSpaceMap[]
const char * getClobbers() const override
Returns a string of target-specific clobbers, in LLVM format.
bool initFeatureMap(llvm::StringMap< bool > &Features, DiagnosticsEngine &Diags, StringRef CPU, const std::vector< std::string > &FeaturesVec) const override
Initialize the map with the default set of target features for the CPU this should include all legal ...
const llvm::omp::GV & getGridValue() const override
static bool hasFeature(StringRef Feature, const LangOptions &LangOpts, const TargetInfo &Target)
Determine whether a translation unit built using the current language options has the given feature.
const char * getBFloat16Mangling() const override
Return the mangled code of bfloat.