[llvm-commits] RFC: R600/SI backend v2

Tom Stellard tstellar at gmail.com
Wed Apr 25 12:30:52 PDT 2012


Hi,

Here is an updated version of the R600/Southern Islands backend for LLVM.
I've gone through and removed all of the code that wasn't being using by
the r600g and radeonsi Mesa[1] drivers.  Hopefully, this will make it a
little easier to review.  I know there are still some style violations,
but as I said before I'm saving those for last in case there is a lot
of code churn during the review.  I've split the code up into 6 separate
patches:

1. Core backend code (TargetMachine, RegisterInfo, InstrInfo, etc)
2. Tablegen definitions and generated files
3. Function passes
4. Tests
5. Intrinsics added to include/llvm
6. Build system changes

Other than the build system and Intrinsic additions, these patches 
contain no modifications of LLVM core code.  The patches will follow in
git send-email format and can also be found in the r600-initial-review
branch here: http://cgit.freedesktop.org/~tstellar/llvm/

This backend combines some code from the AMDIL backend that was published
last December with code emitters for R600 (AMD HD2XXX-HD6XXX) and Southern
Islands (AMD HD7XXX) GPUs.  The R600 code emitter emits bytecode that
is understood by the r600 gallium 3D/Compute driver in Mesa, and the
Southern Islands code emitter emits raw Southern Islands machine code,
but it is in the very early stages of development, so only a handful of
instructions are supported.

This backend currently lives upstream in the Mesa project, but I would
much prefer to have it in the LLVM project.

Looking forward to your comments.

Thanks,
Tom Stellard

[1] http://www.mesa3d.org/





More information about the llvm-commits mailing list