mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 13:48:06 +02:00
clover: Dynamically calculate __OPENCL_VERSION__ and CLC language version
Use get_language_version to calculate default cl standard based on
device capabilities and -cl-std specified in build options.
v5; move dev_clc_version declaration from an earlier patch
v4: Squash the __OPENCL_VERSION__ and CLC language version patches
v3: (Jan) Allow device_version up to 2.2 while device_clc_version
only goes to 2.0
Use get_cl_version to calculate version instead
v2: Split out from the previous patch (Pierre)
Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Pierre Moreau <pierre.morrow@free.fr>
CC: Jan Vesely <jan.vesely@rutgers.edu>
This commit is contained in:
parent
29b4090d18
commit
c95d953b18
1 changed files with 5 additions and 2 deletions
|
|
@ -197,6 +197,7 @@ namespace {
|
|||
map(std::mem_fn(&std::string::c_str), opts);
|
||||
|
||||
const target &target = dev.ir_target();
|
||||
const std::string &device_clc_version = dev.device_clc_version();
|
||||
|
||||
if (!clang::CompilerInvocation::CreateFromArgs(
|
||||
c->getInvocation(), copts.data(), copts.data() + copts.size(), diag))
|
||||
|
|
@ -218,7 +219,7 @@ namespace {
|
|||
compat::set_lang_defaults(c->getInvocation(), c->getLangOpts(),
|
||||
compat::ik_opencl, ::llvm::Triple(target.triple),
|
||||
c->getPreprocessorOpts(),
|
||||
clang::LangStandard::lang_opencl11);
|
||||
get_language_version(opts, device_clc_version));
|
||||
|
||||
c->createDiagnostics(new clang::TextDiagnosticPrinter(
|
||||
*new raw_string_ostream(r_log),
|
||||
|
|
@ -249,7 +250,9 @@ namespace {
|
|||
c.getPreprocessorOpts().Includes.push_back("clc/clc.h");
|
||||
|
||||
// Add definition for the OpenCL version
|
||||
c.getPreprocessorOpts().addMacroDef("__OPENCL_VERSION__=110");
|
||||
c.getPreprocessorOpts().addMacroDef("__OPENCL_VERSION__=" +
|
||||
std::to_string(get_cl_version(
|
||||
dev.device_version()).version_number));
|
||||
|
||||
// clc.h requires that this macro be defined:
|
||||
c.getPreprocessorOpts().addMacroDef("cl_clang_storage_class_specifiers");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue