[llvm-dev] SPIRV-LLVM as an external tool

Tom Stellard via llvm-dev llvm-dev at lists.llvm.org
Fri Feb 23 12:28:12 PST 2018

On 02/21/2018 03:34 PM, Pierre Moreau wrote:
> On 2018-02-21 — 14:55, Tom Stellard via llvm-dev wrote:
>> On 02/21/2018 12:15 AM, Tomeu Vizoso via llvm-dev wrote:
>>> Hi,
>>> for a few months already I have been asking around for opinions on how
>>> people could best work together on Khronos' SPIR-V <-> LLVM-IR converter
>>> and some consensus seems to have formed.
>>> Most of the people I talked to favored having the converter become an
>>> external tool within the LLVM project, similar to libclc. I think that
>>> the LLVM project's processes, infrastructure and community form the best
>>> place for this collaboration to happen.
>>> I hope that having the converter as part of LLVM can help expand LLVM's
>>> value proposition in heterogeneous computing, in part by complementing
>>> the OpenCL C backend in clang.
>>> Thus I would like to ask what the LLVM community needs to see from us
>>> before SPIRV-LLVM can be accepted as an external tool, if at all.
>> Does the external tool exist already?  I recommend starting by posting
>> the code publicly and then ensuring that going forward all development
>> and discussions about the tool are happening in a public space.
> The code is publicly available at https://github.com/pierremoreau/llvm-spirv.
> It is based on https://github.com/KhronosGroup/SPIRV-LLVM/ and
> https://github.com/thewilsonator/llvm-target-spirv/, stripped off of everything
> not related to SPIR-V and updated to work with llvm HEAD.
> (Some of the commits were lost on the way, so we are in the process of redoing
> the stripping and updating.)

This is great to see.  Is this code the basis of the forks that Anastasia
talked about or did those come from somewhere else?


> One user of that external tool will be Mesa [1] (for its OpenCL implementation
> named clover) for
> 1. enabling clCreateProgramWithIL(KHR)? on AMD cards through clover, by
>    translating SPIR-V to LLVM IR; (patches under review [2])
> 2. allowing additional drivers (nouveau, freedreno, etnativ) to be supported by
>    clover, by compiling OpenCL C (via LLVM IR) to SPIR-V (and then translating
>    from SPIR-V to NIR).
> Regards,
> Pierre
> [1]: https://www.mesa3d.org/
> [2]: https://patchwork.freedesktop.org/series/38728/
>> It's important to demonstrate that there is a developer community backing
>> the tool and that it won't be abandoned if it is added as an llvm
>> sub-project.
>> -Tom
>>> Thanks,
>>> Tomeu
>>> _______________________________________________
>>> LLVM Developers mailing list
>>> llvm-dev at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

More information about the llvm-dev mailing list