Karol Herbst
d1eab2b1eb
clover: Fix build with llvm-12.
...
Fix build error after LLVM commit c495dfe0268b ("[clang][cli] NFC:
Decrease the scope of ParseLangArgs parameters").
../src/gallium/frontends/clover/llvm/invocation.cpp: In function ‘std::unique_ptr<clang::CompilerInstance> {anonymous}::create_compiler_instance(const clover::device&, const string&, const std::vector<std::__cxx11::basic_string<char> >&, std::string&)’:
../src/gallium/frontends/clover/llvm/invocation.cpp:252:55: error: cannot convert ‘clang::PreprocessorOptions’ to ‘std::vector<std::__cxx11::basic_string<char> >&’
252 | c->getPreprocessorOpts(),
| ~~~~~~~~~~~~~~~~~~~~~~^~
| |
| clang::PreprocessorOptions
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4114
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8543 >
2021-03-02 09:16:53 +00:00
Jesse Natalie
f95afdd606
clover: Add -fgnu89-inline to Clang command line
...
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9085 >
2021-02-16 22:11:21 +00:00
Pierre Moreau
c0d4d21ff5
clover/spirv: Use cl_version for SPIR-V versions (v2)
...
v2: Explicitly construct the cl_name_version object.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Signed-off-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2078 >
2021-01-01 21:56:57 +01:00
Pierre Moreau
7005cadbc9
clover/spirv: Change API to use std::string binaries
...
clover::program stores IL representations using a std::string, so change
the API to also use std::string to avoid copies and additional
allocations.
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Signed-off-by: Pierre Moreau <dev@pmoreau.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2078 >
2021-01-01 21:56:29 +01:00
Jesse Natalie
4cfd57dd48
clover/llvm: Work around MSVC quirks
...
Two things:
1. While instantiating a template where clover::llvm and ::llvm are
both resolvable for unscoped llvm, MSVC complains about ambiguity.
Resolve by not using namespace clover, leaving only ::llvm as a
valid namespace.
2. LLVM headers (specifically Allocator.h) use __declspec(restrict),
but Mesa's util headers #define restrict to __restrict for C++.
Since __declspec(__restrict) is invalid, make sure we always include
Allocator.h first before the util header.
3. Change a uint/int to uint64_t to match the type returned from LLVM.
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7680 >
2020-12-02 10:13:34 -08:00
Dave Airlie
3a512c34d2
clover: add support for opencl C features
...
This adds support to the compiler and api for this CL 3.0 feature.
fixes CTS compiler features_macro
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7520 >
2020-11-11 06:30:26 +10:00
Pierre Moreau
f1b91177fb
clover/spirv: avoid strings for version handling
...
This is extracted from Pierre's WIP versioning patch.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7520 >
2020-11-11 06:30:26 +10:00
Pierre Moreau
330c524762
clover/llvm: don't use strings for version handling.
...
This is extracted from Pierre's WIP versioning patch.
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7520 >
2020-11-11 06:08:59 +10:00
Pierre Moreau
7507ce1db4
clover: rename platform/device apis using strings
...
Just add as_string to these to faciliate the non-string ones.
(extracted by airlied from pmoreau patch).
Reviewed-by: Dave Airlie <airlied@redhat.com >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7520 >
2020-11-11 06:07:54 +10:00
Dave Airlie
7230f39c1a
clover/llvm: add 3.0 versioning.
...
Just adds the 3.0 versioning to the compiler interface.
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7468 >
2020-11-06 17:03:05 +10:00
Serge Martin
a3543adc26
clover: set LLVM min version to 8.0.1
...
It also bump from 8.0.0 to .1 for AMD gallium and VK
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6336 >
2020-09-26 11:06:42 +02:00
Karol Herbst
036f1c29fc
clover/llvm: undefine __IMAGE_SUPPORT__ for devices without image support
...
libclang seems to define this on its own for SPIR targets, but the CTS
requires it to be not set if the device doesn't support images.
The SPIRV-LLVM-Translator also requires the spir triple to be set so we
can't really do anything else except to undefine.
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Jason Ekstrand <jason@jlekstran.net >
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6433 >
2020-09-01 18:47:30 +00:00
Jason Ekstrand
32dc71b23a
clover: Call clang with -O0 for the SPIR-V path
...
SPIRV-LLVM-Translator isn't really built for handling optimized LLVM IR.
It tends to fall over when, for instance, an optimization generates an
i96 type which isn't legal in SPIR-V. Pass -O0 to avoid these cases.
See https://github.com/KhronosGroup/SPIRV-LLVM-Translator/issues/203 .
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6432 >
2020-08-22 00:27:07 +00:00
Jason Ekstrand
e3e45e2456
clover/spirv: Don't call llvm::regularizeLlvmForSpirv
...
writeSpirv() already takes care of that, and calling it twice seems to
duplicate functions and cause problems when processing execution modes.
Fixes: 2043c5f37c
"clover/llvm: Add functions for compiling from..."
Acked-by: Daniel Stone <daniels@collabora.com >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6306 >
2020-08-21 23:18:08 +00:00
Karol Herbst
adda97c98b
clover/spirv: pass list of supported extensions to the translator
...
Signed-off-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Pierre Moreau <dev@pmoreau.org >
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5038 >
2020-08-20 19:48:12 +00:00
Pierre Moreau
2402466a08
clover/llvm: Use the highest supported SPIR-V version (v4)
...
v2:
a) Move `supported_spirv_verssions()` to `spirv::` (Francisco Jerez)
b) Introduce a `SPV_MAKE_VERSION` macro to avoid making mistakes and
making it more readable than its uint representation.
v3: Replaced an if-statement with a `std::min()` in
`spirv::get_spirv_translator_options()` (Karol Herbst)
v4: Turn `SPV_MAKE_VERSION()` into a function (Francisco Jerez)
Signed-off-by: Pierre Moreau <dev@pmoreau.org >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Reviewed-by: Francisco Jerez <currojerez@riseup.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5038 >
2020-08-20 19:48:12 +00:00
Marek Olšák
d6287a94b6
gallium: rename 'state tracker' to 'frontend'
...
Acked-by: Eric Anholt <eric@anholt.net >
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com >
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4902 >
2020-05-13 13:46:53 -04:00