<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>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.  <br>
    </p>
    <p><br>
    </p>
    <p>(All of the above is generic and not specific to this particular
      proposal, but does address the specific question below.)</p>
    <p><br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 03/08/2018 04:30 AM, Neil Hickey via
      llvm-dev wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:DB5PR08MB123733B50F1727166F0EFA0AFEDF0@DB5PR08MB1237.eurprd08.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
      <div id="divtagdefaultwrapper"
style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;"
        dir="ltr">
        <div style="color: rgb(0, 0, 0);">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.
          <div dir="ltr">
            <div id="x_divtagdefaultwrapper" dir="ltr"
              style="font-size:12pt; color:#000000;
              font-family:Calibri,Helvetica,sans-serif">
              <p style="margin-top:0; margin-bottom:0"><br>
              </p>
              <p style="margin-top:0; margin-bottom:0">Neil<br>
              </p>
            </div>
            <hr tabindex="-1" style="display:inline-block; width:98%">
            <div id="x_divRplyFwdMsg" dir="ltr"><font
                style="font-size:11pt" face="Calibri, sans-serif"
                color="#000000"><b>From:</b> llvm-dev
                <a class="moz-txt-link-rfc2396E" href="mailto:llvm-dev-bounces@lists.llvm.org"><llvm-dev-bounces@lists.llvm.org></a> on behalf of
                Philip Reames via llvm-dev
                <a class="moz-txt-link-rfc2396E" href="mailto:llvm-dev@lists.llvm.org"><llvm-dev@lists.llvm.org></a><br>
                <b>Sent:</b> 06 March 2018 23:07:54<br>
                <b>To:</b> Anastasia Stulova; Chris Lattner<br>
                <b>Cc:</b> <a class="moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>; nd; Tomeu Vizoso<br>
                <b>Subject:</b> Re: [llvm-dev] SPIRV-LLVM as an external
                tool</font>
              <div> </div>
            </div>
            <div style="background-color:#FFFFFF">
              <p>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. 
                <br>
              </p>
              <p><br>
              </p>
              <p>Philip<br>
              </p>
              <br>
              <div class="x_x_moz-cite-prefix">On 03/06/2018 10:54 AM,
                Anastasia Stulova via llvm-dev wrote:<br>
              </div>
              <blockquote type="cite">
                <style type="text/css" style="display:none">
<!--
p
        {margin-top:0;
        margin-bottom:0}
-->
</style>
                <div id="x_x_divtagdefaultwrapper" dir="ltr" style="">
                  <p style="margin-top:0; margin-bottom:0">Hi Chris,</p>
                  <p style="margin-top:0; margin-bottom:0"><br>
                  </p>
                  <p style="margin-top:0; margin-bottom:0">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.
                    <br>
                  </p>
                  <p style="margin-top:0; margin-bottom:0"><br>
                  </p>
                  <p style="margin-top:0; margin-bottom:0">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.<br>
                  </p>
                  <br>
                  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.
                  <p style="margin-top:0; margin-bottom:0"><br>
                  </p>
                  <p style="margin-top:0; margin-bottom:0">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.<span></span></p>
                  <p style="margin-top:0; margin-bottom:0"><br>
                  </p>
                  <p style="margin-top:0; margin-bottom:0">Thanks!</p>
                  <p style="margin-top:0; margin-bottom:0">Anastasia<br>
                  </p>
                  <br>
                  <br>
                  <div style="color:rgb(0,0,0)">
                    <hr tabindex="-1" style="display:inline-block;
                      width:98%">
                    <div id="x_x_divRplyFwdMsg" dir="ltr"><font
                        style="font-size:11pt" face="Calibri,
                        sans-serif" color="#000000"><b>From:</b> Chris
                        Lattner
                        <a class="x_x_moz-txt-link-rfc2396E"
                          href="mailto:clattner@nondot.org"
                          moz-do-not-send="true"><clattner@nondot.org></a><br>
                        <b>Sent:</b> 01 March 2018 01:52<br>
                        <b>To:</b> <a
                          class="x_x_moz-txt-link-abbreviated"
                          href="mailto:tstellar@redhat.com"
                          moz-do-not-send="true">
                          tstellar@redhat.com</a><br>
                        <b>Cc:</b> Anastasia Stulova; Tomeu Vizoso; <a
                          class="x_x_moz-txt-link-abbreviated"
                          href="mailto:llvm-dev@lists.llvm.org"
                          moz-do-not-send="true">
                          llvm-dev@lists.llvm.org</a>; nd<br>
                        <b>Subject:</b> Re: [llvm-dev] SPIRV-LLVM as an
                        external tool</font>
                      <div> </div>
                    </div>
                    <div class="x_x_BodyFragment"><font size="2"><span
                          style="font-size:11pt">
                          <div class="x_x_PlainText">On Feb 27, 2018, at
                            10:25 AM, Tom Stellard via llvm-dev
                            <a class="x_x_moz-txt-link-rfc2396E"
                              href="mailto:llvm-dev@lists.llvm.org"
                              moz-do-not-send="true"><llvm-dev@lists.llvm.org></a>
                            wrote:<br>
                            > On 02/27/2018 05:07 AM, Anastasia
                            Stulova wrote:<br>
                            >>> SPIR-V does not have to be a
                            part of LLVM for you to do this.  You can
                            add<br>
                            >>> the SPIR-V target to clang and
                            then define a SPIR-V toolchain (i.e.
                            clang/Driver/Toolchains)<br>
                            >>> that uses the external tool to
                            translate LLVM IR to SPIR-V.<br>
                            >> <br>
                            >> <br>
                            >> Ok. I guess if Clang community
                            accepts this way, it would be better to set
                            up the SPIRV converter as a tool of LLVM.<br>
                            >> <br>
                            >> 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.<br>
                            > <br>
                            > There is no requirement that the tool
                            needs to be an official part of the LLVM<br>
                            > project to implement to use it this
                            way  For example, the cuda toolchain<br>
                            > in clang relies on a few proprietary
                            tools from NVIDIA.<br>
                            > <br>
                            > I think too much emphasis is being
                            placed on having this tool be part of the<br>
                            > LLVM project.<br>
                            <br>
                            Agreed.  Why is it good for LLVM to include
                            this tool?<br>
                            <br>
                            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).<br>
                            <br>
                            -Chris<br>
                            <br>
                            <br>
                          </div>
                        </span></font></div>
                  </div>
                </div>
                <br>
                <fieldset class="x_x_mimeAttachmentHeader"></fieldset>
                <br>
                <pre>_______________________________________________
LLVM Developers mailing list
<a class="x_x_moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org" moz-do-not-send="true">llvm-dev@lists.llvm.org</a>
<a class="x_x_moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" moz-do-not-send="true">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
              </blockquote>
              <br>
            </div>
          </div>
        </div>
      </div>
      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.
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
LLVM Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>
<a class="moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>