Tom Stellard <t...@stellard.net> writes:

> On Tue, Sep 11, 2012 at 11:12:49PM +0200, Vincent wrote:
>> Hi,
>> 
>> I'm currently working on a glsl to llvm pass that generates LLVM IR from
>> glsl tree for drivers that ships with a LLVM backend. The current code
>> is located here : http://cgit.freedesktop.org/~vlj/mesa in branch
>> glsl-to-llvm3. It is still a work in progress (I'm not fully satisfied
>> by some factorisation and coding style is not consistant atm)
>> 
>> I'm testing it against evergreen at the moment thus namespace are r600
>> oriented (all the intrinsics are prefixed with llvm.AMDGPU. or
>> llvm.R600.). However I'm trying to make it as driver agnostic as
>> possible.
>
> The r600 backend uses way too many intrinsics, and most of them could be
> replaced with either one or a sequence of LLVM IR instructions.
> However, there are several things that must be represented by intrinsics.
> These include texture instructions, shader inputs, shader outputs, and
> possibly others.  I think if this front end is used by multiple backends,
> it will be important to come up with some standard intrinsic definitions
> that backends can share.  Ideally GLSL->LLVM would not need to use any
> target-specific intrinsics.

That was my reaction when I saw vlj's work as well -- way too many
intrinsics for no apparent reason, and the previous llvm stuff from Luca
looked much nicer in that way.

> As I mentioned above, if this will be used by multiple backends, it
> makes sense to rename the intrinsics to something like
> llvm.mesa.store.position.

Agreed (and this is where Luca's code wasn't apparently useful -- no
real way to get inputs and outputs hooked up to it as-is)

Attachment: pgpPxJbbs1TtY.pgp
Description: PGP signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to