diff options
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r-- | clang/lib/Basic/Targets.cpp | 48 |
1 files changed, 11 insertions, 37 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp index b1b12e468bf..4ca67ac08ca 100644 --- a/clang/lib/Basic/Targets.cpp +++ b/clang/lib/Basic/Targets.cpp @@ -1999,6 +1999,17 @@ public: Builder.defineMacro("__HAS_FMAF__"); if (hasLDEXPF) Builder.defineMacro("__HAS_LDEXPF__"); + if (hasFP64 && Opts.OpenCL) + Builder.defineMacro("cl_khr_fp64"); + if (Opts.OpenCL) { + if (GPU >= GK_NORTHERN_ISLANDS) { + Builder.defineMacro("cl_khr_byte_addressable_store"); + Builder.defineMacro("cl_khr_global_int32_base_atomics"); + Builder.defineMacro("cl_khr_global_int32_extended_atomics"); + Builder.defineMacro("cl_khr_local_int32_base_atomics"); + Builder.defineMacro("cl_khr_local_int32_extended_atomics"); + } + } } BuiltinVaListKind getBuiltinVaListKind() const override { @@ -2086,31 +2097,6 @@ public: return true; } - - void setSupportedOpenCLOpts() { - auto &Opts = getSupportedOpenCLOpts(); - Opts.cl_clang_storage_class_specifiers = 1; - Opts.cl_khr_gl_sharing = 1; - Opts.cl_khr_gl_event = 1; - Opts.cl_khr_d3d10_sharing = 1; - Opts.cl_khr_subgroups = 1; - - if (hasFP64) - Opts.cl_khr_fp64 = 1; - if (GPU >= GK_NORTHERN_ISLANDS) { - Opts.cl_khr_byte_addressable_store = 1; - Opts.cl_khr_global_int32_base_atomics = 1; - Opts.cl_khr_global_int32_extended_atomics = 1; - Opts.cl_khr_local_int32_base_atomics = 1; - Opts.cl_khr_local_int32_extended_atomics = 1; - } - if (GPU >= GK_SOUTHERN_ISLANDS) - Opts.cl_khr_fp16 = 1; - Opts.cl_khr_int64_base_atomics = 1; - Opts.cl_khr_int64_extended_atomics = 1; - Opts.cl_khr_3d_image_writes = 1; - Opts.cl_khr_gl_msaa_sharing = 1; - } }; const Builtin::Info AMDGPUTargetInfo::BuiltinInfo[] = { @@ -2730,10 +2716,6 @@ public: bool hasSjLjLowering() const override { return true; } - - void setSupportedOpenCLOpts() { - getSupportedOpenCLOpts().setAll(); - } }; bool X86TargetInfo::setFPMath(StringRef Name) { @@ -7876,12 +7858,6 @@ public: CallingConv getDefaultCallingConv(CallingConvMethodType MT) const override { return CC_SpirFunction; } - - void setSupportedOpenCLOpts() { - // Assume all OpenCL extensions and optional core features are supported - // for SPIR since it is a generic target. - getSupportedOpenCLOpts().setAll(); - } }; class SPIR32TargetInfo : public SPIRTargetInfo { @@ -8482,7 +8458,5 @@ TargetInfo::CreateTargetInfo(DiagnosticsEngine &Diags, if (!Target->handleTargetFeatures(Opts->Features, Diags)) return nullptr; - Target->setSupportedOpenCLOpts(); - return Target.release(); } |