GPLv3 clarification - what constitutes IR

Richard Biener
Mon Mar 6 17:39:00 GMT 2017

On March 6, 2017 6:29:49 PM GMT+01:00, Ian Lance Taylor via gcc <> wrote:
>On Mon, Mar 6, 2017 at 9:12 AM,  <> wrote:
>> I'm looking into the possibility of adding a SPIR-V
>> ( backend to GCC or as a
>> plug-in. The output of which would be binary from the compiler, not
>> binutils, with an option to extract a textual representation using an
>> flag. The positive of this would be that any language that GCC
>> could be used for GPGPU and graphics shading.
>> But would the GCC IR exception (mentioned in
>> cause any
>> SPIR-V output from GCC become GPLv3 licenced?
>> I have also posted this to the GCC ML for discussion as I don't think
>> it's clear whether or not something like SPIR-V would fall under
>> Code or IR.
>I am not a lawyer and this is not legal advice.
>Generating SPIR-V output would not cause that output to become GPLv3
>licensed.  However, linking the result against the GCC support
>libraries, as is normally required for any program generated by GCC,
>and then distributing the resulting executable to other people, would
>require you to use an eligible compilation process (as defined by the
>GCC Runtime Library Exception license that you cite).  What this means
>in practice is that you can not take SPIR-V, do further processing it
>using a proprietary compiler, link the result with the GCC runtime
>libraries, and then distribute the resulting program to anybody else.
>I don't think it is necessary to determine whether SPIR-V is "target
>code" or "intermediate representation" to draw that conclusion.

Note we already have the HSAIL and PTX backends which have the very same (non-)problem.  Both invoke a proprietary compiler for final compilation.



More information about the Gcc mailing list