Message ID | bug-66847-502@http.bugs.freedesktop.org/ (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
https://bugs.freedesktop.org/show_bug.cgi?id=66847 --- Comment #1 from Andreas Boll <andreas.boll.dev@gmail.com> --- The llvm backends of r600g and the radeonsi on mesa 9.1 are only compatible with tstellar's llvm-3.2 branch. The llvm backends of r600g and the radeonsi on mesa 9.2 should be compatible with the official llvm-3.3 and llvm-3.4. It's not compatible with tstellar's llvm-3.2 branch. So I think we should abort in configure if someone wants to build mesa 9.1 with enabled llvm backend and llvm != 3.2.
https://bugs.freedesktop.org/show_bug.cgi?id=66847 --- Comment #2 from Michel Dänzer <michel@daenzer.net> --- (In reply to comment #1) > So I think we should abort in configure if someone wants to build mesa 9.1 > with enabled llvm backend and llvm != 3.2. Agreed.
https://bugs.freedesktop.org/show_bug.cgi?id=66847 --- Comment #3 from Andreas Boll <andreas.boll.dev@gmail.com> --- Created attachment 82362 --> https://bugs.freedesktop.org/attachment.cgi?id=82362&action=edit possible fix (untested)
https://bugs.freedesktop.org/show_bug.cgi?id=66847 --- Comment #4 from Marc Dietrich <marvin24@gmx.de> --- You should also remove "or newer". Also "master" isn't the right branch (which one is the right?). While you are at it, checking for r600 target isn't enough, because it also needs "host". I have the feeling that we should disable r600-llvm support in 9.1 release alltogether. I think it was just for testing anyway and likely unstable/lots of bugs still. It also saves distros from compiling some experimental version of llvm.
https://bugs.freedesktop.org/show_bug.cgi?id=66847 --- Comment #5 from Andreas Boll <andreas.boll.dev@gmail.com> --- (In reply to comment #4) > You should also remove "or newer". Yes, will do. > Also "master" isn't the right branch > (which one is the right?). master is the right branch. See http://cgit.freedesktop.org/~tstellar/llvm > While you are at it, checking for r600 target > isn't enough, because it also needs "host". > AFAIK the host target is needed for llvmpipe and draw-llvm too. So a more generic check would be required. But that's stuff for mesa master and should be in a separate commit anyway. > I have the feeling that we should disable r600-llvm support in 9.1 release > alltogether. I think it was just for testing anyway and likely unstable/lots > of bugs still. It also saves distros from compiling some experimental > version of llvm. For initial radeonsi support it's required. The r600g llvm backend isn't enabled by default and the help string says: Enable experimental LLVM backend for graphics shaders. See http://cgit.freedesktop.org/mesa/mesa/tree/configure.ac?h=9.1#n641 I think that should be enough.
https://bugs.freedesktop.org/show_bug.cgi?id=66847 Andreas Boll <andreas.boll.dev@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #82362|0 |1 is obsolete| | --- Comment #6 from Andreas Boll <andreas.boll.dev@gmail.com> --- Created attachment 82365 --> https://bugs.freedesktop.org/attachment.cgi?id=82365&action=edit possible fix v2 (untested)
https://bugs.freedesktop.org/show_bug.cgi?id=66847 --- Comment #7 from Marc Dietrich <marvin24@gmx.de> --- arr, yes, master is right (I had an unclean tree), and also yes, r600 llvm in mesa is marked experimental and needs to be enabled explicitly, so all is fine - sorry. Patch looks also fine (tested).
https://bugs.freedesktop.org/show_bug.cgi?id=66847 Andreas Boll <andreas.boll.dev@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #8 from Andreas Boll <andreas.boll.dev@gmail.com> --- Fixed with commit 9a287a076803a4b4cb475ec5c067c9a064f11a0d
--- a/src/gallium/drivers/r600/llvm_wrapper.cpp +++ b/src/gallium/drivers/r600/llvm_wrapper.cpp @@ -2,11 +2,13 @@ #include <llvm/ADT/StringRef.h> #if HAVE_LLVM < 0x0303 #include <llvm/LLVMContext.h> +#include <llvm/Support/IRReader.h> #else #include <llvm/IR/LLVMContext.h> +#include <llvm/IRReader/IRReader.h> +#include <llvm/IR/Module.h> #endif #include <llvm/PassManager.h> -#include <llvm/Support/IRReader.h> #include <llvm/Support/MemoryBuffer.h> #include <llvm/Support/SourceMgr.h> #include <llvm/Transforms/IPO.h>