[Mesa-dev] clover: Implement linking of multiple CL programs.

Tom Stellard tom at stellard.net
Mon Jul 4 21:06:08 UTC 2016

On Sun, Jul 03, 2016 at 05:51:09PM -0700, Francisco Jerez wrote:
> This series is the result of a long back and forth of patches between
> Serge and me.  Most of the changes are already reviewed by either of
> us, but I'm sending them again over the mailing list just in case
> somebody else wants to give additional feedback.  Patches 1-30 are
> mainly cleaning up and reworking the current LLVM interfacing
> infrastructure in preparation for the following changes.  Patches
> 31-47 is where program compilation is actually split in two stages and
> support for linking multiple CL programs into one executable binary is
> implemented.

I have no objections to this series and will be happy to see it


> You can find the same series in the clover-link-program branch of my
> git tree:
> https://cgit.freedesktop.org/~currojerez/mesa/log/?h=clover-link-program
> [PATCH 01/47] clover: Bump required LLVM version to 3.6.
> [PATCH 02/47] clover/llvm: Drop support for LLVM < 3.6.
> [PATCH 03/47] clover/llvm: Drop dead code.
> [PATCH 04/47] clover/llvm: Collect #ifdef mess into a separate file.
> [PATCH 05/47] clover/llvm: Factor out target string parsing.
> [PATCH 06/47] clover/llvm: Factor out compiler option tokenization.
> [PATCH 07/47] clover/llvm: Refactor compiler instance initialization.
> [PATCH 08/47] clover/llvm: Declare compiler instance at top level and pass down as argument.
> [PATCH 09/47] clover/llvm: Factor out LLVM context init.
> [PATCH 10/47] clover/llvm: Clean up compilation into LLVM IR.
> [PATCH 11/47] clover/llvm: Trivial codestyle clean-up for optimize().
> [PATCH 12/47] clover/llvm: Simplify diagnostic_handler().
> [PATCH 13/47] clover/llvm: Use helper function to abort compilation with error message.
> [PATCH 14/47] clover/llvm: Tidy debug handling.
> [PATCH 15/47] clover/llvm: Move a bunch of utility functions into separate file.
> [PATCH 16/47] clover/llvm: Clean up ELF parsing.
> [PATCH 17/47] clover/llvm: Clean up compile_native().
> [PATCH 18/47] clover/llvm: Factor out duplicated construction of clover::module.
> [PATCH 19/47] clover/llvm: Fold compile_native() call into build_module_native().
> [PATCH 20/47] clover/llvm: Clean up codestyle of get_kernel_args().
> [PATCH 21/47] clover/llvm: Add simplified utility functions for metadata introspection.
> [PATCH 22/47] clover/llvm: Use metadata introspection utils for kernel argument set-up.
> [PATCH 23/47] clover/llvm: Use metadata introspection utils for kernel enumeration.
> [PATCH 24/47] clover/llvm: Clean up bitcode codegen.
> [PATCH 25/47] clover/llvm: Split native codegen and assembly print-out into separate functions.
> [PATCH 26/47] clover/llvm: Define function for bitcode print-out.
> [PATCH 27/47] clover/llvm: Split shared codegen support code into separate file.
> [PATCH 28/47] clover/llvm: Split bitcode codegen into separate file.
> [PATCH 29/47] clover/llvm: Split native codegen into separate file.
> [PATCH 30/47] clover/llvm: Trivial assorted cleanups for invocation.cpp.
> [PATCH 31/47] clover/llvm: Implement library bitcode codegen.
> [PATCH 32/47] clover/llvm: Split compilation and linking.
> [PATCH 33/47] clover/llvm: Implement linkage of multiple clover modules.
> [PATCH 34/47] clover/llvm: Implement the -create-library linker option.
> [PATCH 35/47] clover/tgsi: Move compiler entry point declaration into tgsi directory and namespace.
> [PATCH 36/47] clover/tgsi: Add stub link_program() function.
> [PATCH 37/47] clover: Override ret_object.
> [PATCH 38/47] clover: Move back to using build_error to signal compilation failure.
> [PATCH 39/47] clover: Define error subclass to signal build option parse failure.
> [PATCH 40/47] clover: Change program::build opts argument to std::string.
> [PATCH 41/47] clover: Unify program::build_* into a single method returning a struct.
> [PATCH 42/47] clover: Provide separate program methods for compilation and linking.
> [PATCH 43/47] clover/llvm: Get rid of compile_program_llvm().
> [PATCH 44/47] clover/core: Remove compiler.hpp.
> [PATCH 45/47] clover: Trivial cleanups for api/program.cpp.
> [PATCH 46/47] clover: Add clLinkProgram (CL 1.2).
> [PATCH 47/47] clover/api: Implement clLinkProgram per-device binary presence validation rule.
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev

More information about the mesa-dev mailing list