[Mesa-dev] [PATCH 5/5] clover: Dynamically calculate __OPENCL_VERSION__ and CLC language version

Aaron Watry awatry at gmail.com
Wed Mar 21 01:23:00 UTC 2018


ping.

This is the last of the series that still needs review.

--Aaron

On Thu, Mar 1, 2018 at 1:39 PM, Aaron Watry <awatry at gmail.com> wrote:
> Use get_language_version to calculate default cl standard based on
> device capabilities and -cl-std specified in build options.
>
> 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 at gmail.com>
> CC: Pierre Moreau <pierre.morrow at free.fr>
> CC: Jan Vesely <jan.vesely at rutgers.edu>
> ---
>  src/gallium/state_trackers/clover/llvm/invocation.cpp | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp b/src/gallium/state_trackers/clover/llvm/invocation.cpp
> index 8d76f203de..f146695585 100644
> --- a/src/gallium/state_trackers/clover/llvm/invocation.cpp
> +++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp
> @@ -194,7 +194,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),
> @@ -225,7 +225,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");
> --
> 2.14.1
>


More information about the mesa-dev mailing list