History log of /external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d9fef848a651b47520cbeb72c38b93d4fbf842a8 21-Dec-2016 Vedran Miletić <vedran@miletic.net> clover: Use Clang's diagnostics

Presently errors from frontend are handled only if they occur in
clang::CompilerInvocation::CreateFromArgs(). This patch uses
clang::DiagnosticsEngine to detect errors such as invalid values for
Clang frontend arguments.

Fixes Piglit's cl/program/build/fail/invalid-version-declaration.cl
test.

v2: fix inconsistent code formatting

Signed-off-by: Vedran Miletić <vedran@miletic.net>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Tested-by: Aaron Watry <awatry@gmail.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
cc495055cdfe7e39002180d095d09fe4b6905eb9 31-Oct-2016 Serge Martin <edb+mesa@sigluy.net> clover: Add CL_PROGRAM_BINARY_TYPE support (CL1.2).

v3 [Francisco Jerez]: Loosely based on Serge's v1 of this patch in
order to avoid CL-specific enums in the clover module binary
format. In addition to other changes made in v2: Represent the CL
program binary type as the section type instead of adding a CL
API-specific enum, check that the binary types of the input objects
are valid during clLinkProgram(), pass section type as argument to
build_module_library() instead of using separate function.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
cfa914a1b4e20e7ef416171f5212f21e8224befc 28-Aug-2016 Niels Ole Salscheider <niels_ole@salscheider-online.de> st/clover: Define __OPENCL_VERSION__ on the device side

This is required by the OpenCL standard.

Signed-off-by: Niels Ole Salscheider <niels_ole@salscheider-online.de>
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Reviewed-by: Vedran Miletić <vedran@miletic.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
106946153fb237e0867d65d53fb3a8461f3a13ee 19-Jul-2016 Tom Stellard <thomas.stellard@amd.com> clover: Re-order includes in invocation.cpp to fix build

The build was failing because the official CL headers have a few defines,
like: # define cl_khr_gl_sharing 1

Which have the same name as some class members of clang's OpenCLOptions class.
If we include the cl headers first, this breaks the build because the member
names of this class are replaced by the literal 1.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Vedran Miletić <vedran@miletic.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
a73bf11a63ea93640c26b5701c533b06d3a6f3e9 19-Jul-2016 Tom Stellard <thomas.stellard@amd.com> clover: Add missing include v2

clang commit r275822 removed unnecessary includes from header files,
so we now need to explicitly include clang/Lex/PreprocessorOptions.h

v2:
- Use <> instead of "" for the include path.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Vedran Miletić <vedran@miletic.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
c2e37fe1f95916c7669fe84118acd2e3683ae077 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Get rid of compile_program_llvm().

Superseded by compile_program() and link_program().

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
2a73ae662cb393bef0d2d0ab71bfd1072adbafb6 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover: Define error subclass to signal build option parse failure.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
4ef1c0918da4363aa20b7c1a91d344fae6c01942 19-Jun-2016 Francisco Jerez <currojerez@riseup.net> clover: Move back to using build_error to signal compilation failure.

This partially reverts 7e0180d57d330bd8d3047e841086712376b2a1cc.
Having two different exception subclasses for compilation and linking
makes it more difficult to share or move code between the two
codepaths, because the exact same function under the same error
condition would need to throw one exception or the other depending on
what top-level API is being implemented with it. There is little
benefit anyway because clCompileProgram() and clLinkProgram() can tell
whether they are linking or compiling a program.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
fb3eeb1314c3269818e58e64b460d045ea5b466d 04-Jun-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Implement the -create-library linker option.

[ Serge Martin: disable internalize pass when building a library.
Otherwise some functions may be inlined and removed ]

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
9de3f4a59f2f588368a5994a9fe49d4136393852 13-Jun-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Implement linkage of multiple clover modules.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
132b6ccd4f81eac3cad5bef42325319708498240 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Split compilation and linking.

Split the work previously done by compile_program_llvm() into
compile_program() (which simply runs the front-end and serializes the
resulting LLVM IR) and link_program() (which takes care of everything
else down to binary codegen).

[ Serge Martin: allow LLVM IR dump after compilation ]

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
86100e13abc6182d2dd51eeb491b113d5a070fa1 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Trivial assorted cleanups for invocation.cpp.

Drop a few include and using directives which are no longer necessary.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
520cc268593edad750d0dbab520a715c31a5c230 20-Jun-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Split native codegen into separate file.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
8195637363c9a5d979831405390157b11ecfc170 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Split bitcode codegen into separate file.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
71ac9820d6c612a3a0cd8fcea87f7f2bde82d640 04-Jul-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Split shared codegen support code into separate file.

This is the common part of the code used to generate a clover::module
from LLVM bitcode, shared between the native and LLVM paths.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
26fa9bfd0dfccf06358180ae740121522d09b51f 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Define function for bitcode print-out.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
f0721020ad6ba20110705cb1d927de09e0e25edc 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Split native codegen and assembly print-out into separate functions.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
1d042adc0a0a47e343ce29c15ac6767c824a8e9c 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Clean up bitcode codegen.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
952d1e6fd68abd13a35748529bdca5c8356eba69 28-Jun-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Use metadata introspection utils for kernel enumeration.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
d37d5842c16dd104fa60dec28aaef1863b094aa3 04-Jul-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Use metadata introspection utils for kernel argument set-up.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
7da2c1ff0f9d48287ef1ae7d484bafb2a98cd639 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Clean up codestyle of get_kernel_args().

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
0601fe74389b23ae1094e730a5681aed3af84629 28-Jun-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Fold compile_native() call into build_module_native().

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
f98422eafdd9f37f293970f908a87b81351b5ed4 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Factor out duplicated construction of clover::module.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
3ce6ab068ced4341bbb404df12fb9bcca294e94c 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Clean up compile_native().

This switches compile_native() to the C++ API (which the rest of this
file makes use of anyway so there is little benefit from using the C
API), what should get rid of an amount of boilerplate and fix a leak
of the TargetMachine object in the error path.

v2: Additional fixes for LLVM 3.6.
v3: Update for the latest LLVM SVN changes.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
7bcefa59031992a39ac997c2000dbad26153aed2 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Clean up ELF parsing.

This function was doing three separate things:
- Initializing and releasing the ELF parsing state (the latter can be
better done using RAII).
- Searching for the symbol table in the ELF file.
- Extraction of kernel symbol offsets from the symbol table.

Split each one into a separate function for clarity and clean up the
result slightly.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
574477e5994166ce6212e922ff15d6a36f840bf3 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Move a bunch of utility functions into separate file.

Some of these will be useful from a different compilation unit in the
same subtree so put them in a publicly accessible header file.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
92247cef3f5d88f17986de8677df5ed4931b6769 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Tidy debug handling.

Most significant change is debugging flags are now a scoped enum and
all debugging helpers live in the debug namespace.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
4614397ac2689b0424cf047577316b644c407f6e 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Use helper function to abort compilation with error message.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
423eecb76a24e014198ab2281805e60d76d8f1ae 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Simplify diagnostic_handler().

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
5884dfbc2a39adbbcc8ef7e7b53d4299ba2616ff 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Trivial codestyle clean-up for optimize().

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
bdc27f13d53759ce9c1c7f58e62a259a18b2ca33 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Clean up compilation into LLVM IR.

Some assorted and mostly trivial clean-ups for the source to bitcode
compilation path.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
714b167f5705a5eec29b2b83dac0d61c5d5746f2 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Factor out LLVM context init.

So it can be shared between the compilation and linking codepaths.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
fa94055d534b2c2237cfb775066b5a4835dd0849 28-Jun-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Declare compiler instance at top level and pass down as argument.

This allows simplifying the interface of compile_llvm() because it no
longer needs to read out and return the optimization level and address
space map from the compiler instance. Instead declare the compiler
instance at the top level so that both properties are available
directly.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
a27d4ec3b9658c76e6caf19dd9024d901e543a7f 26-Jun-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Refactor compiler instance initialization.

This will be shared between the compiler and linker codepaths.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
c2a167ad73f91f4e9f94a45aba65a01e198fd41f 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Factor out compiler option tokenization.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
c513cfa747bdb9ac3059ab4e436cd7083c50aed0 26-Jun-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Factor out target string parsing.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
251054220eeaf23f20e0f8447071a22b11225ac6 26-Jun-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Collect #ifdef mess into a separate file.

This gets rid of most ifdef's from the invocation.cpp code -- Only a
couple of them are left which will be removed differently in the
following commits.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
11afde89b82174c499007b79152a38fd61839c57 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Drop dead code.

This ifdef'ed out code was meant to handle compilation into TGSI, but
it doesn't seem likely that it will ever be useful even if the TGSI
back-end is resurrected because the TGSI bitcode can just be plumbed
through in ELF format and dealt with as a regular "native" back-end.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
600ac51448f0dc62808e962a206d11e1b179a32f 28-Jun-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Drop support for LLVM < 3.6.

Reviewed-by: Serge Martin <edb+mesa@sigluy.net>
Tested-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
87787e907929fe65d6b65d467ad05ea94279bb5a 23-Jun-2016 Jan Vesely <jan.vesely@rutgers.edu> clover: Fix kernel metadata retrieval after clang r273425

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Acked-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
a8a966ddb5ad805421bb9548b150055d14fb5c63 17-May-2016 Francisco Jerez <currojerez@riseup.net> clover/llvm: Fix copyright attribution of invocation.cpp.

This file still only has my name on the copyright notice even though
most of the code (likely more than 90% of it) was authored by various
contributors -- It doesn't seem right to have the whole file
attributed to myself.

Acked-by: Michel Dänzer <michel.daenzer@amd.com>
Acked-by: Serge Martin <edb+mesa@sigluy.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
82e0bbd01abfb2073519941d9893fa6ac05fb58c 21-Jun-2016 Vedran Miletić <vedran@miletic.net> clover: Fix build against clang SVN >= r273191

setLangDefaults() now requires PreprocessorOptions as an argument.

Reviewed-and-Tested-by: Michel Dänzer <michel.daenzer@amd.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
9525f33164fcc071088093d110404b6c3b9d5ab8 12-May-2016 Jan Vesely <jan.vesely@rutgers.edu> clover: Handle PIPE_SHADER_IR_NIR in switch

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
860210ccfc0a90a4635fc930cd323bc426db5991 27-Apr-2016 Michel Dänzer <michel.daenzer@amd.com> clover: Fix build against clang SVN >= r267772

(Re-pushing previous fix for clang SVN r265359, which was reverted in
the meantime)

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
171a570f388b2895d14f6d5418c99573cffd6369 13-Apr-2016 Michel Dänzer <michel.daenzer@amd.com> clover: Fix build against LLVM SVN >= r266163

createInternalizePass now takes a callback instead of a StringSet.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
715e97e3421ec33c219c9829e7930d135dfe0bf8 07-Apr-2016 Michel Dänzer <michel.daenzer@amd.com> Revert "clover: Fix build against clang SVN >= r265359"

This reverts commit 0daab9878d2b96356cf667591a2c877d912be52d.

The corresponding clang change was reverted.

Trivial.
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
0daab9878d2b96356cf667591a2c877d912be52d 05-Apr-2016 Michel Dänzer <michel.daenzer@amd.com> clover: Fix build against clang SVN >= r265359

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
b4a03e7f8f4006eb2c5b09a0611fdda153dd8437 09-Dec-2015 Michel Dänzer <michel.daenzer@amd.com> clover: Fix build against LLVM 3.8 SVN >= r255078

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
37402014e80f991169f9e05c1520667ba3930baf 28-Oct-2015 Laurent Carlier <lordheavym@gmail.com> clover: fix building fix clang-3.8

https://bugs.freedesktop.org/show_bug.cgi?id=92705

v2.1: use Linker::Flags::None instead of 0 and emplace_back()

Signed-off-by: Laurent Carlier <lordheavym@gmail.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
1691ead1b8ae4018a805af58977a43ef90af4203 08-Sep-2015 Albert Freeman <albertwdfreeman@gmail.com> clover: Avoid using typename to allow compilation of clover by clang

When parsing an variable declaration qualified with the typename
keyword, clang attempted to declare a variable with the type of non
type member "enum type type" of module::argument (within the header
file clover/core/module.hpp) instead of the typed member of
module::argument "enum type".

Replaced "typename" with "enum" to force clang to declare the variable
marg_type with type "enum type" of module::argument.

CC: "11.0" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Albert Freeman <albertwdfreeman@gmail.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
df5cdec1329507d5ac52a6d3db49c2608b9226bc 19-Aug-2015 Zoltan Gilian <zoltan.gilian@gmail.com> clover: fix llvm 3.5 build error

There is no MDOperand in llvm 3.5.

v2: Check if kernel metadata is present to avoid crash (EdB).
v3: Second attempt to avoid crash: switch off metadata query for llvm < 3.6.

Reviewed-by: Serge Martin (EdB) <edb+mesa@sigluy.net>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
7f4ad692a10bf0f247dedd4968b7ffe9b07d2af2 14-Aug-2015 Michel Dänzer <michel.daenzer@amd.com> st/clover: Fix build against LLVM 3.8 SVN r244928

raw_svector_ostream::flush() is now unnecessary and forbidden:

CXX llvm/libclllvm_la-invocation.lo
../../../../../src/gallium/state_trackers/clover/llvm/invocation.cpp: In function 'clover::module {anonymous}::build_module_llvm(llvm::Module*, unsigned int (&)[7])':
../../../../../src/gallium/state_trackers/clover/llvm/invocation.cpp:574:29: error: use of deleted function 'void llvm::raw_svector_ostream::flush()'
bitcode_ostream.flush();
^
In file included from /home/daenzer/src/llvm-git/llvm/include/clang/Basic/VirtualFileSystem.h:22:0,
from /home/daenzer/src/llvm-git/llvm/include/clang/Basic/FileManager.h:20,
from /home/daenzer/src/llvm-git/llvm/include/clang/Basic/SourceManager.h:38,
from /home/daenzer/src/llvm-git/llvm/include/clang/Frontend/CompilerInstance.h:16,
from ../../../../../src/gallium/state_trackers/clover/llvm/invocation.cpp:25:
/home/daenzer/src/llvm-git/llvm/include/llvm/Support/raw_ostream.h:512:8: note: declared here
void flush() = delete;
^
Makefile:862: recipe for target 'llvm/libclllvm_la-invocation.lo' failed

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
9ef5b7a23348291893a6bf61fcce7a306e787add 27-Jul-2015 Zoltan Gilian <zoltan.gilian@gmail.com> clover: pass image attributes to the kernel

Read-only and write-only image arguments are recognized and
distinguished.
Attributes of the image arguments are passed to the kernel as implicit
arguments.
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
d2cd2c69b20fcb3f1fc3b7671745c5c84ef200cb 27-Jul-2015 Zoltan Gilian <zoltan.gilian@gmail.com> clover: move find_kernels to functions
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
7e0180d57d330bd8d3047e841086712376b2a1cc 07-Jul-2015 EdB <edb+mesa@sigluy.net> clover: little OpenCL status code logging clean

s/build_error/compile_error in order to match the stored OpenCL status code.
Make program::build catch and log every OpenCL error.
Make tgsi error triggering uniform with the llvm one.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
40665362fd660a8d58f9edbdfec79a33d44b1534 11-May-2015 EdB <edb+mesa@sigluy.net> clover: Log build options when dumping clc source.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
d8f817ae7f4241a9ea23140805aaeb724a0ac851 23-Apr-2015 EdB <edb+mesa@sigluy.net> clover: remove util/compat

Acked-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
5ca9b23319db66d9768d46c0a7504b7bb079164a 24-Apr-2015 EdB <edb+mesa@sigluy.net> clover: remove compat::string

Acked-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
c1485f4b7d044724b3dbc1011f3c3a8a53132010 19-Apr-2015 EdB <edb+mesa@sigluy.net> clover: remove pre llvm 3.5.0 compatibility code

Acked-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
a398168f7238b42c2fbecf940e09fc5ebef71f62 04-Mar-2015 Tom Stellard <thomas.stellard@amd.com> clover: Fix build since llvm r231270
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
75514555aa0061299034bf15b5df31ab6746c0e5 27-Feb-2015 Tom Stellard <thomas.stellard@amd.com> clover: Don't unconditionally define cl_khr_fp64

This should be done by the frontend for devices that support this
extension.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
7df256add2ae9fb916c3e0f80c879e42d1c8a7a0 14-Feb-2015 Shawn Starr <shawn.starr@rogers.com> clover: Use Legacy PassManager for LLVM trunk (3.7)

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Signed-off-by: Shawn Starr <shawn.starr@rogers.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
6ee5effac1ac8858c96820ece352be57c5c53cf6 28-Jan-2015 EdB <edb+mesa@sigluy.net> clover/llvm: Dump the OpenCL C code earlier.

[ Francisco Jerez: As discussed on the mailing list, this is intended
to produce more useful debug output in cases where the compilation
terminates unexpectedly. ]

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
13d23a9a176b62453d36035b5d793082a638a686 14-Dec-2014 EdB <edb+mesa@sigluy.net> clover/llvm: Move CLOVER_DEBUG stuff into anonymous namespace.

[ Francisco Jerez: As we're at it make debug_options[] local to its
only user and remove temporary. ]

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
5c83a0d2ce41fa4b7b39d13c69d39990f7c926f5 21-Jan-2015 Michel Dänzer <michel.daenzer@amd.com> st/clover: Pass target instead of target.begin() to std::string()

Fixes reading beyond allocated memory:

==1936== Invalid read of size 1
==1936== at 0x4C2C1B4: strlen (vg_replace_strmem.c:412)
==1936== by 0x9E00C30: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20)
==1936== by 0x5B44FAE: clover::compile_program_llvm(clover::compat::string const&, clover::compat::vector<clover::compat::pair<clover::compat::string, clover::compat::string> > const&, pipe_shader_ir, clover::compat::string const&, clover::compat::string const&, clover::compat::string&) (invocation.cpp:698)
==1936== by 0x5B39A20: clover::program::build(clover::ref_vector<clover::device> const&, char const*, clover::compat::vector<clover::compat::pair<clover::compat::string, clover::compat::string> > const&) (program.cpp:63)
==1936== by 0x5B20152: clBuildProgram (program.cpp:182)
==1936== by 0x400F41: main (hello_world.c:109)
==1936== Address 0x56fee1f is 0 bytes after a block of size 15 alloc'd
==1936== at 0x4C28C20: malloc (vg_replace_malloc.c:296)
==1936== by 0x5B398F0: alloc (compat.hpp:59)
==1936== by 0x5B398F0: vector<std::basic_string<char> > (compat.hpp:98)
==1936== by 0x5B398F0: string<std::basic_string<char> > (compat.hpp:327)
==1936== by 0x5B398F0: clover::program::build(clover::ref_vector<clover::device> const&, char const*, clover::compat::vector<clover::compat::pair<clover::compat::string, clover::compat::string> > const&) (program.cpp:63)
==1936== by 0x5B20152: clBuildProgram (program.cpp:182)
==1936== by 0x400F41: main (hello_world.c:109)

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
9cbb9165b9454ccc7f2a6702ce71bc5cd9faba02 25-Jan-2015 Jan Vesely <jan.vesely@rutgers.edu> clover: Fix build with llvm after r226981

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88783
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
a6a75f1286e1a2e7a0fb856849802b40474c6336 14-Jan-2015 Michel Dänzer <michel.daenzer@amd.com> st/clover: Adapt to TargetLibraryInfo.h move in LLVM SVN r226078

Trivial.
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
25db8729dc53b60ee0caade5e797e99d6ad13fa3 10-Dec-2014 Aaron Watry <awatry@gmail.com> clover: Fix build after llvm r223802

Signed-off-by: Aaron Watry <awatry at gmail.com>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
745b1f550339b3adbf272a28b9d0c767a86ff2fb 07-Nov-2014 EdB <edb+mesa@sigluy.net> clover: clCompileProgram CL_INVALID_COMPILER_OPTIONS

clCompileProgram should return CL_INVALID_COMPILER_OPTIONS
instead of CL_INVALID_BUILD_OPTIONS

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
0cae7ea2719a939cf91de03a1bfeeeca08ec98a4 12-Nov-2014 Tom Stellard <thomas.stellard@amd.com> Revert "clover: Fix build after llvm r221375"

This reverts commit cd93d82ba9ec8cd8e4f54bbee16d7b47c542de71.

llvm r221375 was reverted, so this commit needs to be too.
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
cd93d82ba9ec8cd8e4f54bbee16d7b47c542de71 06-Nov-2014 Jan Vesely <jan.vesely@rutgers.edu> clover: Fix build after llvm r221375

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
013ff2fae13da41c2f5619c4698b0a7b5aa6a06d 22-Oct-2014 José Fonseca <jfonseca@vmware.com> gallivm,llvmpipe,clover: Bump required LLVM version to 3.3.

We'll need to update gallivm for the interface changes in LLVM 3.6, and
the fewer the number of older LLVM versions we support the less hairy that
will be.

As consequence HAVE_AVX define can disappear. (Note HAVE_AVX meant
whether LLVM version supports AVX or not. Runtime support for AVX is
always checked and enforced independently.)

Verified llvmpipe builds and runs with with LLVM 3.3, 3.4, and 3.5.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
1ab6543431b5a4eaf589cdabf2227088dd62ce6f 19-Oct-2014 Vinson Lee <vlee@freedesktop.org> clover: Fix build error with LLVM 3.4.

DataLayoutPass was added in LLVM 3.5 r202168, commit
57edc9d4ff1648568a5dd7e9958649065b260dca "Make DataLayout a plain
object, not a pass.".

This patch fixes this build error with LLVM 3.4.

CXX llvm/libclllvm_la-invocation.lo
llvm/invocation.cpp: In function 'void {anonymous}::optimize(llvm::Module*, unsigned int, const std::vector<llvm::Function*>&)':
llvm/invocation.cpp:324:18: error: expected type-specifier
PM.add(new llvm::DataLayoutPass(mod));
^

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85189
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
611d66fe4513e53bde052dd2bab95d448c909a2a 20-Oct-2014 EdB <edb+mesa@sigluy.net> clover: Add initial implementation of clCompileProgram for CL 1.2.

[ Francisco Jerez: General clean-up. ]

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
e1d363b3ffbfb85133a6871c63068a4ba841b2cd 30-Sep-2014 Tom Stellard <thomas.stellard@amd.com> clover: Add environment variables for dumping kernel code v2

There are two debug variables:

CLOVER_DEBUG which you can set to any combination of llvm,clc,asm
(separated by commas) to dump llvm IR, OpenCL C, and native assembly.

CLOVER_DEBUG_FILE which you can set to a file name for dumping output
instead of stderr. If you set this variable, the output will be split
into three separate files with different suffixes: .cl for OpenCL C,
.ll for LLVM IR, and .asm for native assembly. Note that when data
is written, it is always appended to the files.

v2:
- Code cleanups
- Add CLOVER_DEBUG_FILE environment variable for dumping to a file.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
76136c29bbd78ea414c86402d4031855218dc42b 26-Sep-2014 Tom Stellard <thomas.stellard@amd.com> clover: Register an llvm diagnostic handler v3

This will allow us to handle internal compiler errors.

v2:
- Code cleanups.

v3:
- More cleanups.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
8e7df519bd8556591794b2de08a833a67e34d526 25-Sep-2014 Tom Stellard <thomas.stellard@amd.com> clover: Add support for compiling to native object code v3

v2:
- Split build_module_native() into three separate functions.
- Code cleanups.

v3:
- More cleanups.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
dc39b32c9bc967a26f745e7ebebcbc4c44c83f20 25-Sep-2014 Tom Stellard <thomas.stellard@amd.com> clover: Factor kernel argument parsing into its own function v2

v2:
- Code cleanups.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
5bffc5e2620db7631300527f937b3a4823f3f999 08-Oct-2014 Jan Vesely <jan.vesely@rutgers.edu> clover: Append implicit arguments to the kernel argument list.

[ Francisco Jerez: Split off from a larger patch, and take a slightly
different approach for passing the implicit arguments around. ]

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
eae9da879f3143507ef0e238a7e4faa87114d54e 27-Aug-2014 Michel Dänzer <michel.daenzer@amd.com> st/clover: Fix build against LLVM SVN >= r216583

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
3ba225c1ab3682fcba33c8b4103afed22e3b3621 21-Aug-2014 Michel Dänzer <michel.daenzer@amd.com> st/clover: Fix build against LLVM SVN >= r215967 v2

v2: Tom Stellard
- Properly destroy the Module

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
2ab44f657e3c8800aa610d39a04e88d6bf3bad01 10-Jun-2014 Matt Arsenault <arsenm2@gmail.com> clover: Fix not setting build log if the build succeeds v2

If there were only warnings, they would not be added to the log.

v2:
- Use compat::string.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
4aa128a123d7285677a527e724809339f15d33a7 17-Jun-2014 Tom Stellard <thomas.stellard@amd.com> clover: Don't use llvm's global context

An LLVMContext should only be accessed by a single and using the global
context was causing crashes in multi-threaded environments. Now we use
a separate context for each compile.

Reviewed-by: Francisco Jerez <currojerez@riseup.net>

CC: "10.1 10.2" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
0cc391f0136c1532701a04c9b2f3a4cc49f25e8c 12-May-2014 Tom Stellard <thomas.stellard@amd.com> clover: Prevent Clang from printing number of errors and warnings to stderr.

https://bugs.freedesktop.org/show_bug.cgi?id=78581

CC: "10.1 10.2" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
7b11c97d31ea9ebdf5d4b89e60bcc96d256aa7a4 25-Apr-2014 Jan Vesely <jan.vesely@rutgers.edu> clover: Align kernel argument sizes to nearest power of 2

v2: use a new variable for aligned size
add comment
make both vars const
only use the aligned value in argument constructors
fix comment typo

Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
9ceee5f4be09702fc881c922b5ad489cd03c76f8 07-Mar-2014 Michel Dänzer <michel.daenzer@amd.com> clover: Fix build against LLVM SVN r203065 or newer

llvm/Linker.h was moved to llvm/Linker/Linker.h.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
262e15fdd401d72045c37a7877efdec1038edec8 04-Mar-2014 Tom Stellard <thomas.stellard@amd.com> clover: Use correct LLVM version in #if for DataLayout construction

Spotted by Michel Dänzer.
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
54df6a049110464c4ba2ad97b12b69ede927eca4 25-Feb-2014 Tom Stellard <thomas.stellard@amd.com> Re-commit 'clover: Fix build with LLVM 3.5'

This was accidentally reverted in 9dfd7c5f75c806801b1b4b4d405899236c09ba75
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
9dfd7c5f75c806801b1b4b4d405899236c09ba75 25-Feb-2014 Timothy Arceri <t_arceri@yahoo.com.au> Revert "Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/mesa"

This reverts commit 1b79582f322d4a89dd6d197c8d4962c788ae7f25, reversing
changes made to 376a98d345dfc3da8d5b0f1e489196f861c4e754.
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
fcd499730b225ec5a35902893c059086ba11b590 25-Feb-2014 Tom Stellard <thomas.stellard@amd.com> clover: Fix build with LLVM 3.5
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
862f55c29c50798942e58ea75c5294921c0489f8 08-Nov-2013 Aaron Watry <awatry@gmail.com> clover: Remove unused variable

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>

CC: "10.0" <mesa-stable@lists.freedesktop.org>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
1b2c6cd205bc35f0409ccf055a77e8ca6eab0db3 01-Nov-2013 Aaron Watry <awatry@gmail.com> clover: fix build with LLVM 3.4

dso_list was added as an argument for createInternalizePass in 3.4, and then
it was removed again in the same llvm version.

Tested-by: Mike Lothian <mike@fireburn.co.uk>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
bff60c894a290260ab3dd2086445b44622a2800e 06-Oct-2013 Francisco Jerez <currojerez@riseup.net> clover: Define helper classes for the new object model.

Tested-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
de1de88dfc478db597726d88231c6c0a7f936121 16-Sep-2013 Tom Stellard <thomas.stellard@amd.com> clover: Link libclc before running any optimizations

This is required in order for clang to correctly handle the OpenCL C
barrier() builtin which has the following restrictions acording to
the OpenCL 1.1 Specification:

If barrier is inside a conditional statement, then all work-items must
enter the conditional if any work-item enters the conditional statement
and executes the barrier.

If barrier is inside a loop, all work-items must execute the barrier for
each iteration of the loop before any are allowed to continue execution
beyond the barrier.

By linking before otimizations, we can replace calls to barrier() with
calls to a target specific intrinsic which has the noduplicate attribute
This attribute prevents clang from performing optimizations which could
violate the above rules.

This attribute must be applied to the call instruction that invokes
the function, so it is not enough to add this attribute the barrier()
declaration.

As a bonus this will probably speed up compile times since we will no
longer need to run link-time optimizations.
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
72465fcf57278c43df0290e07d68371c6c292f27 04-Oct-2013 Laurent Carlier <lordheavym@gmail.com> clover: fix building with llvm-3.4 since rev191922

http://llvm.org/viewvc/llvm-project?view=revision&revision=191922
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
d9576598c7e1c6e4fee913a918345190248a9d19 24-Jul-2013 Jonathan Charest <jcharest+mesa-dev@gmail.com> clover: Added missing address space checking of kernel parameters v2

Here is an updated patch with no line wrapping and respecting 80-column limit (for my changes).

v2: Tom Stellard
- Create global arguments for constant buffers so we don't break
r600g.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
81a156d099b5c224d4a528b66a80e25626ed65bc 02-Jul-2013 Niels Ole Salscheider <niels_ole@salscheider-online.de> st/clover: Allow double precision operations

Pass "cl_khr_fp64" preprocessor definition to clang

Signed-off-by: Niels Ole Salscheider <niels_ole@salscheider-online.de>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
df530829f757a8968389427eb26f45a0d46623fa 21-Jul-2013 Francisco Jerez <currojerez@riseup.net> clover: Respect kernel argument alignment restrictions.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
f64c0ca692d3e8c78dd9ae1f015f58f1dfc1c760 22-Jul-2013 Francisco Jerez <currojerez@riseup.net> clover: Extend kernel arguments for differing host and device data types.

Loosely based on a similar patch by Tom Stellard.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
5a925cc5504575c22dbb7d29842d7fc5babcb5c7 06-Jun-2013 Tom Stellard <thomas.stellard@amd.com> clover: Don't segfault when compiling a program with no kernel
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
0e990736f34c43f553d4516bc6ffb8fe521e3806 27-Jun-2013 Tom Stellard <thomas.stellard@amd.com> clover: Fix build with LLVM 3.4

Reported on IRC by lordheavy
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
f0cb66b69904b0a3e4083aa8874af63cf1c14321 21-Apr-2013 Kenneth Graunke <kenneth@whitecape.org> mesa: Restore 78-column wrapping of license text in C++-style comments.

The previous commit introduced extra words, breaking the formatting.

This text transformation was done automatically via the following shell
command:
$ git grep 'THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY' | sed 's/:.*$//' | xargs -I {} sh -c 'vim -e -s {} < vimscript2

where 'vimscript2' is a file containing:
/THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY/;/^ *$/ !fmt -w 78 -p '// '
:wq

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
96ff2edc73ccf11d4d198ba3665507f73ae4a9f7 21-Apr-2013 Kenneth Graunke <kenneth@whitecape.org> mesa: Add "OR COPYRIGHT HOLDERS" to license text disclaiming liability.

This brings the license text in line with the MIT License as published
on the Open Source Initiative website:

http://opensource.org/licenses/mit-license.php

Generated automatically be the following shell command:
$ git grep 'THE AUTHORS BE LIABLE' | sed 's/:.*$//g' | xargs -I '{}' \
sed -i 's/THE AUTHORS/THE AUTHORS OR COPYRIGHT HOLDERS/' {}

This introduces some wrapping issues, to be fixed in the next commit.

Reviewed-by: Brian Paul <brianp@vmware.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
c5e5b3401c52f83bd885497cb30125e78a21d666 07-Mar-2013 Tom Stellard <thomas.stellard@amd.com> gallium: PIPE_COMPUTE_CAP_IR_TARGET - allow drivers to specify a processor v2

This target string now contains four values instead of three. The old
processor field (which was really being interpreted as arch) has been split
into two fields: processor and arch. This allows drivers to pass a
more a more detailed description of the hardware to compiler frontends.

v2:
- Adapt to libclc changes

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
777a7f2003f260cc383f14029413f48101ae5718 01-Apr-2013 Mike Lothian <mike@fireburn.co.uk> clover: Fix build with LLVM 3.3
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
aa1c734b3ca445b5af743b9bad6a48ca7ba21f3c 22-Feb-2013 Tom Stellard <thomas.stellard@amd.com> clover: Fix build with LLVM 3.3 v2

v2:
- Fix order that the clang libraries are passed to the linker to avoid
missing symbol errors.

Acked-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
959e83d65075513f989cb1fe634dca314a7e185f 30-Nov-2012 Johannes Obermayr <johannesobermayr@gmx.de> clover: Adapt libclc's INCLUDEDIR and LIBEXECDIR to make use of the new introduced libclc.pc.

Tom Stellard:
-Keep --with-libclc-path and mark it deprecated.

Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
c68babfc3c7b65dd53697528781bd6b6186f5190 27-Nov-2012 Tom Stellard <thomas.stellard@amd.com> clover: Add support for compiler flags

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
b36b6fdb32f58757175d2e727e7a98a63b0e2b76 12-Nov-2012 Tom Stellard <thomas.stellard@amd.com> clover: Fix build with clang 3.2
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
dc54c49df9c9e37b00d3ba20455407999e03f391 10-Oct-2012 Tom Stellard <thomas.stellard@amd.com> clover: Fix build with LLVM 3.2

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
581619f5a70c0e2ef6ac6d1e810b4f5a6e6416d4 24-Sep-2012 Tom Stellard <thomas.stellard@amd.com> clover: Fix build with libclang v3.2

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
e59505e34bdea772bb439cb42f2ef20ec495de03 13-Sep-2012 Blaž Tomažič <blaz.tomazic@gmail.com> clover: Handle multiple kernels in the same program v2

v2: Tom Stellard
- Use pc parameter of launch_grid()

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
ca8fa0230896727af81ee54197f6e2233d49481d 21-Jun-2012 Tom Stellard <thomas.stellard@amd.com> clover: Add a function internalizer pass before LTO v2

The function internalizer pass marks non-kernel functions as internal,
which enables optimizations like function inlining and global dead-code
elimination.

v2:
- Pass vector arguments by const reference
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
46a13b3b11d859e131399853c11ae2be0eb02f0a 24-Apr-2012 Tom Stellard <thomas.stellard@amd.com> clover: Add function for building a clover::module for non-TGSI targets v6

v2:
-Separate IR type and LLVM triple
-Do the OpenCL C->LLVM IR and linking steps for all PIPE_SHADER_IR
types.

v3:
- Coding style fixes
- Removed compatibility code for LLVM < 3.1
- Split build_module_llvm() into three functions:
compile(), link(), and build_module_llvm()

v4:
- Use struct pipe_compute_program

v5:
- Don't malloc memory for struct pipe_llvm_program

v6:
- Fix serialization of llvm bytecode

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp
c6db1b3396384186aab5b685fe1fd540e17b3a62 20-Apr-2012 Francisco Jerez <currojerez@riseup.net> clover: Import OpenCL state tracker.
/external/mesa3d/src/gallium/state_trackers/clover/llvm/invocation.cpp