[cfe-dev] [RfC] A proposal of adding SPIR-V Toolchain in Clang

Anastasia Stulova via cfe-dev cfe-dev at lists.llvm.org
Mon Sep 17 01:40:26 PDT 2018


This would work for us!


________________________________
From: James Courtier-Dutton <james.dutton at gmail.com>
Sent: 16 September 2018 12:11
To: Anastasia Stulova
Cc: clang developer list; llvm-dev at lists.llvm.org; nd; Brian.Sumner at amd.com
Subject: Re: [cfe-dev] [RfC] A proposal of adding SPIR-V Toolchain in Clang

On 10 September 2018 at 16:10, Anastasia Stulova via cfe-dev <cfe-dev at lists.llvm.org<mailto:cfe-dev at lists.llvm.org>> wrote:

An example of how Clang can be used to target SPIR-V:

clang -c test.cl<http://test.cl> -target spirv[32|64]-unknown-unknown -o test.spv

This will result in the following Clang actions:

(1) clang -cc1 -triple spirv[32|64]-unknown-unknown test.cl<http://test.cl> -emit-llvm-bc -o test.bc

(2) llvm-spirv test.bc -o test.spv


Hi,

At a high level, one can view the output of backends as being "lower" than LLVM IR.
If we wish to output representations that are at a similar level to LLVM IR, then it might be sensible not to use the backends method.
How about a new output method.
e.g.
Instead of:
(1) clang -cc1 -triple spirv[32|64]-unknown-unknown test.cl<http://test.cl> -emit-llvm-bc -o test.bc
(2) llvm-spirv test.bc -o test.spv
Use:
clang -cc1 -triple spirv[32|64]-unknown-unknown test.cl<http://test.cl> -emit-spirv -o test.spv
With -emit-xxxx  being plugins that do not fit well with the existing backend api.
This could also be used for output representations that are higher than LLVM IR, e.g. C
We could treat them as a final LLVM IR Module pass, that results in some file output

Kind Regards

James



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20180917/dd9591e1/attachment.html>


More information about the cfe-dev mailing list