[llvm-commits] RFC: Add R600/SI backend as an experimental target

Justin Holewinski justin.holewinski at gmail.com
Fri Sep 7 06:53:33 PDT 2012


I don't see any problems with pushing this as an experimental target.  
It's definitely too much code for me to just read as a diff right now, 
but pushing this as an experimental target seems like a great way to get 
people to test builds on different hosts and help solidify a process for 
experimental backends.

Then again, I have no say over this what-so-ever... :)

On 08/31/2012 03:18 PM, Tom Stellard wrote:
> Hi,
>
> I've attached a patch with an updated version of the R600/SI backend.
> This time I've squashed all the changes into a single patch and used a
> format that is compatible with svn for easier testing/reviewing.
>
> Since the last version, I've fixed some build errors caused by recent
> tablegen changes, and I've also gone through and fixed all the
> errors caused by setting InstrInfo.guessInstructionProperties = 0.
>
> If you prefer git, this code can also be found in the r600-review-v8
> branch here: http://cgit.freedesktop.org/~tstellar/llvm/
>
> I'm still interested in getting this code into the main tree as an
> experimental target, so I'd appreciate any feedback on whether or not
> this backend is ready to be accepted as an experimental target.
>
> Thanks,
> Tom Stellard
>
> On Mon, Aug 27, 2012 at 02:46:06PM +0000, Tom Stellard wrote:
>> Hi,
>>
>> Here is an updated version of the R600/SI backend that I would like to
>> be considered for inclusion in the LLVM main tree as an experimental[1]
>> target.
>>
>> Changes since the last version include:
>>    + Added AsmPrinter
>>    + Converted Tests to use AsmPrinter
>>    + Replaced CodeEmitters with MCCodeEmitters
>>    + Removed all uses of MachineOperands flags
>>    + Enabled the If Conversion pass on R600
>>    + Various clean ups and bug fixes.
>>
>> For more information about the backend, here are some frequently asked
>> questions:
>>
>> ++ What is the R600/SI backend?
>>
>>    The R600/SI backend is a code generator for AMD GPUs and supports
>>    the HD2XXX-HD7XXX GPU models.  It is currently being used by the
>>    Open Source graphics drivers for AMD GPUs in the Mesa[2] project as
>>    a compiler backend for graphics and compute shaders.
>>
>> ++ How will the R600/SI backend benefit LLVM?
>>
>>    The R600/SI backend is a native code generator for GPUs.  There are
>>    very few completely Open Source compiler backends for GPUs, so
>>    adding this backend to LLVM will give the project a leg up over other
>>    compiler projects and help attract the attention of researchers and
>>    new developers.
>>
>> ++ Why do the R600/SI developers want this code in the main LLVM tree?
>>
>>    The main reason for this is to reduce the maintenance burden on
>>    developers so they have more time to spend improving the backend and
>>    core LLVM code.  Supporting multiple versions of LLVM in the Mesa
>>    tree will require a lot of ugly ifdefs, and it will be very difficult
>>    to take advantage of new features in Tablegen.  Also, changes to the
>>    backend will require testing against at least two version of LLVM.
>>    Moving the backend code into the main LLVM tree will allow the
>>    backend to evolve with the rest of the project and remove these
>>    extra burdens from developers.
>>
>> ++ What is the planned development model for the R600/SI backend?
>>
>>    If accepted into the main tree, all development on the R600/SI will be based
>>    on the public LLVM tree.  The backend has been Open Source from the beginning
>>    and there are no private internal trees.  All code developed for this backend
>>    is pushed to the public tree as soon as it is ready.
>>
>> Looking forward to you comments.
>>
>> Thanks,
>> Tom Stellard
>>
>> [1] http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-July/051929.html
>> [2] http://www.mesa3d.org
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

-- 
Thanks,

Justin Holewinski

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120907/aa76bbe7/attachment.html>


More information about the llvm-commits mailing list