[llvm-commits] RFC: R600/SI backend v2
tstellar at gmail.com
Wed Apr 25 14:30:52 CDT 2012
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 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
1. Core backend code (TargetMachine, RegisterInfo, InstrInfo, etc)
2. Tablegen definitions and generated files
3. Function passes
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.
More information about the llvm-commits