diff options
Diffstat (limited to 'contrib/llvm/tools/clang/lib/Basic/Targets/NVPTX.h')
| -rw-r--r-- | contrib/llvm/tools/clang/lib/Basic/Targets/NVPTX.h | 10 | 
1 files changed, 9 insertions, 1 deletions
diff --git a/contrib/llvm/tools/clang/lib/Basic/Targets/NVPTX.h b/contrib/llvm/tools/clang/lib/Basic/Targets/NVPTX.h index a84870763f54..84d466d2f49f 100644 --- a/contrib/llvm/tools/clang/lib/Basic/Targets/NVPTX.h +++ b/contrib/llvm/tools/clang/lib/Basic/Targets/NVPTX.h @@ -40,6 +40,7 @@ class LLVM_LIBRARY_VISIBILITY NVPTXTargetInfo : public TargetInfo {    static const char *const GCCRegNames[];    static const Builtin::Info BuiltinInfo[];    CudaArch GPU; +  uint32_t PTXVersion;    std::unique_ptr<TargetInfo> HostTarget;  public: @@ -55,7 +56,8 @@ public:    initFeatureMap(llvm::StringMap<bool> &Features, DiagnosticsEngine &Diags,                   StringRef CPU,                   const std::vector<std::string> &FeaturesVec) const override { -    Features["satom"] = GPU >= CudaArch::SM_60; +    Features[CudaArchToString(GPU)] = true; +    Features["ptx" + std::to_string(PTXVersion)] = true;      return TargetInfo::initFeatureMap(Features, Diags, CPU, FeaturesVec);    } @@ -98,6 +100,12 @@ public:      return StringToCudaArch(Name) != CudaArch::UNKNOWN;    } +  void fillValidCPUList(SmallVectorImpl<StringRef> &Values) const override { +    for (int i = static_cast<int>(CudaArch::SM_20); +         i < static_cast<int>(CudaArch::LAST); ++i) +      Values.emplace_back(CudaArchToString(static_cast<CudaArch>(i))); +  } +    bool setCPU(const std::string &Name) override {      GPU = StringToCudaArch(Name);      return GPU != CudaArch::UNKNOWN;  | 
