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

Philip Reames via llvm-dev llvm-dev at lists.llvm.org
Wed Mar 14 13:46:41 PDT 2018

All code requires maintenance.  Additional users of existing API tends 
to limit their evolution.  If there is not a community around a 
particular portion of code, that code is purely a drag on the project 
and community as a whole.  We have a strong expectation that 
contributors "pay their way" in maintenance costs.  At a minimum, new 
code must be net neutral from the communities perspective.  This is a 
fairly high bar to clear in practice.

(All of the above is generic and not specific to this particular 
proposal, but does address the specific question below.)

On 03/08/2018 04:30 AM, Neil Hickey via llvm-dev wrote:
> Thanks for your feedback Philip. Could you perhaps explain what the 
> downsides to LLVM are of accepting this as a subproject as I can't 
> really see any myself.
> Neil
> ------------------------------------------------------------------------
> *From:* llvm-dev <llvm-dev-bounces at lists.llvm.org> on behalf of Philip 
> Reames via llvm-dev <llvm-dev at lists.llvm.org>
> *Sent:* 06 March 2018 23:07:54
> *To:* Anastasia Stulova; Chris Lattner
> *Cc:* llvm-dev at lists.llvm.org; nd; Tomeu Vizoso
> *Subject:* Re: [llvm-dev] SPIRV-LLVM as an external tool
> I've only been skimming the discussion thread so far, but so far, I 
> see no strong reason for this to be a LLVM subproject in it's current 
> form.  I would recommend pursing a standalone open source project, 
> building a community around the common development, and then return to 
> this proposal once there is an existing community around an existing 
> codebase.  Until that time, I see lots of downside for LLVM in 
> accepting this project and little benefit.
> Philip
> On 03/06/2018 10:54 AM, Anastasia Stulova via llvm-dev wrote:
>> Hi Chris,
>> The main benefit for LLVM to include SPIRV support directly is to 
>> increase the number of users and developers in the area of 
>> heterogeneous computing, e.g. GPUs, FPGAs, DSPs.
>> We want to increase the number of such devices that LLVM natively 
>> supports by adding compilation to SPIRV due to the shortage of 
>> proprietary backends in upstream LLVM.
>> Just to clarify we are currently suggesting to integrate the 
>> converter as a subproject of LLVM, similar to Clang or libclc, to 
>> reduce the overhead for the overall community in maintaining it and 
>> running tests.
>> One more thing to be mentioned, the latest OpenCL standards evolve 
>> towards off-line compilation from OpenCL C++ to SPIRV. So having 
>> SPIRV generation directly in LLVM would allow us to deliver fully 
>> complete and compliant OpenCL C++ support, without using any external 
>> tools. See discussion with Tom earlier.
>> Thanks!
>> Anastasia
>> ------------------------------------------------------------------------
>> *From:* Chris Lattner <clattner at nondot.org> <mailto:clattner at nondot.org>
>> *Sent:* 01 March 2018 01:52
>> *To:* tstellar at redhat.com <mailto:tstellar at redhat.com>
>> *Cc:* Anastasia Stulova; Tomeu Vizoso; llvm-dev at lists.llvm.org 
>> <mailto:llvm-dev at lists.llvm.org>; nd
>> *Subject:* Re: [llvm-dev] SPIRV-LLVM as an external tool
>> On Feb 27, 2018, at 10:25 AM, Tom Stellard via llvm-dev 
>> <llvm-dev at lists.llvm.org> <mailto:llvm-dev at lists.llvm.org> wrote:
>> > On 02/27/2018 05:07 AM, Anastasia Stulova wrote:
>> >>> SPIR-V does not have to be a part of LLVM for you to do this.  
>> You can add
>> >>> the SPIR-V target to clang and then define a SPIR-V toolchain 
>> (i.e. clang/Driver/Toolchains)
>> >>> that uses the external tool to translate LLVM IR to SPIR-V.
>> >>
>> >>
>> >> Ok. I guess if Clang community accepts this way, it would be 
>> better to set up the SPIRV converter as a tool of LLVM.
>> >>
>> >> So the question is are there any downsides of this? Or would 
>> anyone object if we add the converter to the LLVM project as an 
>> optional tool? We would of course take care of configuring and 
>> maintaining it ourselves.
>> >
>> > There is no requirement that the tool needs to be an official part 
>> of the LLVM
>> > project to implement to use it this way  For example, the cuda 
>> toolchain
>> > in clang relies on a few proprietary tools from NVIDIA.
>> >
>> > I think too much emphasis is being placed on having this tool be 
>> part of the
>> > LLVM project.
>> Agreed.  Why is it good for LLVM to include this tool?
>> If there was a strong rationale for doing so, it would probably make 
>> sense to be a new subproject of some sort rather than included in the 
>> main llvm repo (not sure if that is what was being proposed).
>> -Chris
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> IMPORTANT NOTICE: The contents of this email and any attachments are 
> confidential and may also be privileged. If you are not the intended 
> recipient, please notify the sender immediately and do not disclose 
> the contents to any other person, use it for any purpose, or store or 
> copy the information in any medium. Thank you.
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180314/57b73ecc/attachment.html>

More information about the llvm-dev mailing list