radeonsi R9270X I am getting mainly black screen with just a few frames/blocks correct since llvm commit - 6f485c0bc532ae7954ca5e0f3fe50a5558b64883 is the first bad commit commit 6f485c0bc532ae7954ca5e0f3fe50a5558b64883 Author: Matt Arsenault <Matthew.Arsenault@amd.com> Date: Thu Nov 13 23:03:09 2014 +0000 R600/SI: Fix fmin_legacy / fmax_legacy matching for SI select_cc is expanded on SI, so this was never matched.
Created attachment 109675 [details] [review] workaround Can you test this LLVM patch. It's not a final fix.
(In reply to Marek Olšák from comment #2) > Created attachment 109675 [details] [review] [review] > workaround > > Can you test this LLVM patch. It's not a final fix. It doesn't apply to head, so testing reset on the bad commit - Yes it does workaround the issue.
Created attachment 109693 [details] [review] Tentative fix I think this is because I was assuming this would only ever see ordered comparisons. This tries disabling the combine for unordered compares
(In reply to Matt Arsenault from comment #4) > Created attachment 109693 [details] [review] [review] > Tentative fix > > I think this is because I was assuming this would only ever see ordered > comparisons. This tries disabling the combine for unordered compares Your patch fixes this issue.
Created attachment 109694 [details] clang build fail with Tentative fix I get a build fail with this - I build OK same tree without patch. clang is roughly from same tree, though I deleted tools/clang when doing the bisect and haven't reinstated yet.
(In reply to Andy Furniss from comment #6) > Created attachment 109694 [details] > clang build fail with Tentative fix > > I get a build fail with this - I build OK same tree without patch. > > clang is roughly from same tree, though I deleted tools/clang when doing the > bisect and haven't reinstated yet. Never mind - I've upgraded GCC - for whatever reason it didn't care or error initially even though I cleaned + git clean -dfx + git reset hard origin/master. Now I do it and it bails early in the configure - We detected a missing feature in the standard C++ library that was known to be missing in libstdc++4.6 and implemented in libstdc++4.7. There are numerous C++11 problems with 4.6's library, and we don't support GCCs or libstdc++ older than 4.7. You will need to update your system and ensure Clang uses the newer standard library. Which is confusing as I've just upgraded from gcc 4.8.3 to 4.9.2. Maybe I need to try rebuilding llvm/clang with gcc.
Comment on attachment 109694 [details] clang build fail with Tentative fix >make[3]: Entering directory '/mnt/sdb1/Src64/llvm/lib/Target/R600' >llvm[3]: Compiling AMDGPUISelLowering.cpp for Release+Asserts build >clang: /mnt/sdb1/Src64/llvm/include/llvm/Support/Casting.h:237: typename cast_retty<X, Y *>::ret_type llvm::cast(Y *) [X = llvm::CallInst, Y = llvm::Instruction]: Assertion `isa<X>(Val) && "cast<Ty>() argument of incompatible type!"' failed. >#0 0x7fa42bcc70b8 llvm::sys::PrintStackTrace(_IO_FILE*) (/usr/bin/../lib/libLLVM-3.6svn.so+0x4230b8) >#1 0x7fa42bcc883b SignalHandler(int) (/usr/bin/../lib/libLLVM-3.6svn.so+0x42483b) >#2 0x7fa42b4812a0 __restore_rt (/lib/libpthread.so.0+0xf2a0) >#3 0x7fa42a27e985 __GI_raise /sources/eglibc-2.15/signal/../nptl/sysdeps/unix/sysv/linux/raise.c:64:0 >#4 0x7fa42a281aab __GI_abort /sources/eglibc-2.15/stdlib/abort.c:93:0 >#5 0x7fa42a2779de __assert_fail_base /sources/eglibc-2.15/assert/assert.c:55:0 >#6 0x7fa42a277a82 (/lib/libc.so.6+0x2da82) >#7 0x8a43b7 clang::CodeGen::CodeGenFunction::EmitCall(clang::CodeGen::CGFunctionInfo const&, llvm::Value*, clang::CodeGen::ReturnValueSlot, clang::CodeGen::CallArgList const&, clang::Decl const*, llvm::Instruction**) (/usr/bin/clang+0x8a43b7) >#8 0x8eab51 clang::CodeGen::CodeGenFunction::EmitCXXMemberOrOperatorCall(clang::CXXMethodDecl const*, llvm::Value*, clang::CodeGen::ReturnValueSlot, llvm::Value*, llvm::Value*, clang::QualType, clang::CallExpr const*) (/usr/bin/clang+0x8eab51) >#9 0x8ebb5e clang::CodeGen::CodeGenFunction::EmitCXXMemberCallExpr(clang::CXXMemberCallExpr const*, clang::CodeGen::ReturnValueSlot) (/usr/bin/clang+0x8ebb5e) >#10 0x8e053b clang::CodeGen::CodeGenFunction::EmitCallExpr(clang::CallExpr const*, clang::CodeGen::ReturnValueSlot) (/usr/bin/clang+0x8e053b) >#11 0x909ade (/usr/bin/clang+0x909ade) >#12 0x8f9943 clang::CodeGen::CodeGenFunction::EmitScalarExpr(clang::Expr const*, bool) (/usr/bin/clang+0x8f9943) >#13 0x8b9e19 clang::CodeGen::CodeGenFunction::EmitScalarInit(clang::Expr const*, clang::ValueDecl const*, clang::CodeGen::LValue, bool) (/usr/bin/clang+0x8b9e19) >#14 0x8bca2e clang::CodeGen::CodeGenFunction::EmitExprAsInit(clang::Expr const*, clang::ValueDecl const*, clang::CodeGen::LValue, bool) (/usr/bin/clang+0x8bca2e) >#15 0x8bb9ed clang::CodeGen::CodeGenFunction::EmitAutoVarInit(clang::CodeGen::CodeGenFunction::AutoVarEmission const&) (/usr/bin/clang+0x8bb9ed) >#16 0x8b880a clang::CodeGen::CodeGenFunction::EmitVarDecl(clang::VarDecl const&) (/usr/bin/clang+0x8b880a) >#17 0x7daa7c clang::CodeGen::CodeGenFunction::EmitDeclStmt(clang::DeclStmt const&) (/usr/bin/clang+0x7daa7c) >#18 0x7d32b4 clang::CodeGen::CodeGenFunction::EmitSimpleStmt(clang::Stmt const*) (/usr/bin/clang+0x7d32b4) >#19 0x7d230f clang::CodeGen::CodeGenFunction::EmitStmt(clang::Stmt const*) (/usr/bin/clang+0x7d230f) >#20 0x7db4ab clang::CodeGen::CodeGenFunction::EmitCompoundStmtWithoutScope(clang::CompoundStmt const&, bool, clang::CodeGen::AggValueSlot) (/usr/bin/clang+0x7db4ab) >#21 0x7efa47 clang::CodeGen::CodeGenFunction::EmitFunctionBody(clang::CodeGen::FunctionArgList&, clang::Stmt const*) (/usr/bin/clang+0x7efa47) >#22 0x7f002a clang::CodeGen::CodeGenFunction::GenerateCode(clang::GlobalDecl, llvm::Function*, clang::CodeGen::CGFunctionInfo const&) (/usr/bin/clang+0x7f002a) >#23 0x7ff21f clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/usr/bin/clang+0x7ff21f) >#24 0x7fc049 clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/usr/bin/clang+0x7fc049) >#25 0x800c31 clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) (/usr/bin/clang+0x800c31) >#26 0x79fe9f (/usr/bin/clang+0x79fe9f) >#27 0x796d47 (/usr/bin/clang+0x796d47) >#28 0x99ebc3 clang::ParseAST(clang::Sema&, bool, bool) (/usr/bin/clang+0x99ebc3) >#29 0x5a86ae clang::FrontendAction::Execute() (/usr/bin/clang+0x5a86ae) >#30 0x57b87c clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/bin/clang+0x57b87c) >#31 0x55dc62 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/bin/clang+0x55dc62) >#32 0x5548ed cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/bin/clang+0x5548ed) >#33 0x55c2e2 main (/usr/bin/clang+0x55c2e2) >#34 0x7fa42a26b36d __libc_start_main /sources/eglibc-2.15/csu/libc-start.c:258:0 >#35 0x5545d5 _start (/usr/bin/clang+0x5545d5) >Stack dump: >0. Program arguments: /usr/bin/clang -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -disable-free -main-file-name AMDGPUISelLowering.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -target-linker-version 2.23 -momit-leaf-frame-pointer -dwarf-column-info -ffunction-sections -fdata-sections -coverage-file /mnt/sdb1/Src64/llvm/lib/Target/R600/Release+Asserts/AMDGPUISelLowering.o -resource-dir /usr/bin/../lib/clang/3.6.0 -dependency-file /mnt/sdb1/Src64/llvm/lib/Target/R600/Release+Asserts/AMDGPUISelLowering.d.tmp -MP -MT /mnt/sdb1/Src64/llvm/lib/Target/R600/Release+Asserts/AMDGPUISelLowering.o -MT /mnt/sdb1/Src64/llvm/lib/Target/R600/Release+Asserts/AMDGPUISelLowering.d -D _DEBUG -D _GNU_SOURCE -D __STDC_CONSTANT_MACROS -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -I /mnt/sdb1/Src64/llvm/include -I /mnt/sdb1/Src64/llvm/lib/Target/R600 -internal-isystem /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.2/../../../../include/c++/4.9.2 -internal-isystem /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.2/../../../../include/c++/4.9.2/x86_64-unknown-linux-gnu -internal-isystem /usr/bin/../lib64/gcc/x86_64-unknown-linux-gnu/4.9.2/../../../../include/c++/4.9.2/backward -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/clang/3.6.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -O3 -Wcast-qual -Wno-long-long -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcovered-switch-default -Wno-uninitialized -Wno-missing-field-initializers -Wno-comment -pedantic -std=c++11 -fdeprecated-macro -fdebug-compilation-dir /mnt/sdb1/Src64/llvm/lib/Target/R600 -ferror-limit 19 -fmessage-length 239 -fvisibility-inlines-hidden -mstackrealign -fno-rtti -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -vectorize-loops -vectorize-slp -o /mnt/sdb1/Src64/llvm/lib/Target/R600/Release+Asserts/AMDGPUISelLowering.o -x c++ AMDGPUISelLowering.cpp >1. AMDGPUISelLowering.cpp:97:1: current parser token 'EVT' >2. AMDGPUISelLowering.cpp:87:27: LLVM IR generation of declaration 'llvm::AMDGPUTargetLowering::getEquivalentMemType' >3. AMDGPUISelLowering.cpp:87:27: Generating code for declaration 'llvm::AMDGPUTargetLowering::getEquivalentMemType' >clang: error: unable to execute command: Aborted >clang: error: clang frontend command failed due to signal (use -v to see invocation) >clang version 3.6.0 (http://llvm.org/git/clang.git f98071d4eacb44e7f36b4fd9878f415524a6efda) (http://llvm.org/git/llvm.git ab9c404bbdceead0ced57d5e805eeeb28941de35) >Target: x86_64-unknown-linux-gnu >Thread model: posix >clang: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script. >clang: note: diagnostic msg: >******************** > >PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT: >Preprocessed source(s) and associated run script(s) are located at: >clang: note: diagnostic msg: /tmp/AMDGPUISelLowering-03f4c1.cpp >clang: note: diagnostic msg: /tmp/AMDGPUISelLowering-03f4c1.sh >clang: note: diagnostic msg: > >******************** >/bin/rm: cannot remove â/mnt/sdb1/Src64/llvm/lib/Target/R600/Release+Asserts/AMDGPUISelLowering.d.tmpâ: No such file or directory >/mnt/sdb1/Src64/llvm/Makefile.rules:1514: recipe for target '/mnt/sdb1/Src64/llvm/lib/Target/R600/Release+Asserts/AMDGPUISelLowering.o' failed >make[3]: *** [/mnt/sdb1/Src64/llvm/lib/Target/R600/Release+Asserts/AMDGPUISelLowering.o] Error 1 >make[3]: Leaving directory '/mnt/sdb1/Src64/llvm/lib/Target/R600' >/mnt/sdb1/Src64/llvm/Makefile.rules:932: recipe for target 'R600/.makeall' failed >make[2]: *** [R600/.makeall] Error 2 >make[2]: Leaving directory '/mnt/sdb1/Src64/llvm/lib/Target' >/mnt/sdb1/Src64/llvm/Makefile.rules:932: recipe for target 'Target/.makeall' failed >make[1]: *** [Target/.makeall] Error 2 >make[1]: Leaving directory '/mnt/sdb1/Src64/llvm/lib' >/mnt/sdb1/Src64/llvm/Makefile.rules:883: recipe for target 'all' failed >make: *** [all] Error 1 >
oops, failed there trying to obsolete - didn't mean to do comment 8
Built llvm with GCC now and Tentative fix works for me.
I've posted an improved patch here: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20141117/245415.html This should swap the operands and still work with unordered compares
(In reply to Matt Arsenault from comment #11) > I've posted an improved patch here: > http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20141117/245415. > html > > This should swap the operands and still work with unordered compares Doesn't work for me with the 2 patches from there on llvm tree from yesterday.
Mesa commit 645b471d619b654d3bacfa8598f759833e08db4e should fix this.
(In reply to Marek Olšák from comment #13) > Mesa commit 645b471d619b654d3bacfa8598f759833e08db4e should fix this. Yes, it works with or without patches on current mesa head.
Module: Mesa Branch: master Commit: 645b471d619b654d3bacfa8598f759833e08db4e URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=645b471d619b654d3bacfa8598f759833e08db4e Author: Marek Olšák <marek.olsak@amd.com> Date: Thu Nov 20 22:16:09 2014 +0100 radeonsi: use minnum and maxnum LLVM intrinsics for MIN and MAX opcodes
*** Bug 86490 has been marked as a duplicate of this bug. ***
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.