[Mesa-dev] r600g/radeonsi LLVM dependencies for future Mesa releases

Tom Stellard tom at stellard.net
Fri Jan 4 13:26:34 PST 2013


I have been getting a lot of questions lately about which LLVM tree to
use for r600g and radeonsi, so I would like to give a summary of the
current situation:

++ Plans for the next Mesa release 9.1 (it might also be called 10.0):

The r600g and radeonsi drivers for this release will be compatible with
LLVM 3.2.  However, since the R600 backend was not included in the LLVM
3.2 release, it will be necessary to build LLVM from the master branch
of this repo: http://cgit.freedesktop.org/~tstellar/llvm/

The code in this branch is the official LLVM 3.2 release +
the R600 backend + bug fixes the backend depends on.

The bug fixes that have been applied can be found here:
http://people.freedesktop.org/~tstellar/llvm/3.2/bug-fixes/ and at this
point all of these patches have also been applied to the upstream LLVM
SVN repo.

R600 backend development will continue in this branch (with all
changes also being pushed upstream to the LLVM SVN repo), until the Mesa
codebase branches for the next release.  Once this happens, this branch
will only be updated with bug fixes and other important changes and the
R600 backend development will move to upstream LLVM.

++ Plans for subsequent Mesa releases:

The r600g and radeonsi drivers will be compatible with upstream LLVM for
all subsequent Mesa releases.  I'm planning to volunteer to do official
point(bugfix) releases of LLVM to make it easier to sync up stable LLVM
and stable Mesa releases.  However, I'm still not quite sure how this will

++ Information for developers:

Be aware that I have recently renamed the backend in my tree from
AMDGPU to R600 to keep it in-sync with upstream.  I can help rebase or
convert patches to the new backend name if needed, but usually all that
needs to be done is replace Target/AMDGPU with Target/R600.

Also, once you've pulled the rename commit, you may need to run
make clean in tools/llvm-config/ and also manually delete the file
LibraryDependencies.inc in order for llvm-config to update its library
dependencies to include the new R600 libraries.

Until Mesa code is branched for the next release, please submit patches
based on my tree.  I will take care of applying them to my tree and also
to the upstream LLVM repo.

If you would prefer to apply your own patches to the upstream LLVM repo,
please request commit access from the LLVM project and then let me know
of your intentions.  It would be a good idea anyway for most contributors
to get LLVM commit access for when we move development to the upstream LLVM


Hope this helps to clarify things.  If anyone has any questions or
suggestions, let me know.


More information about the mesa-dev mailing list