[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