[Mesa-dev] [Bug 94503] OpenCL segfaults during compilation
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Sun Mar 13 04:17:52 UTC 2016
https://bugs.freedesktop.org/show_bug.cgi?id=94503
--- Comment #2 from Tyson Whitehead <twhitehead at gmail.com> ---
Thanks for the heads-up Matt.
I rebuilt the Debian package of mesa 11.2.0-rc3 against the Debian package of
llvm 3.9~svn262954 and am pleased to say the simplified kernel I provided also
now compiles for me.
Unfortunately the full set of my OpenCL code I still causing a segfault.
Pruning code reveals it is a different kernel though, and the backtrace is
entirely different too, so progress is being made!
I'm attaching a simplified version of this next kernel function. I would
appreciate it if you could give it a go on your setup and see if it is
segfaulting for you as well.
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff3bad2a0 in (anonymous namespace)::JoinVals::pruneValues
(this=this at entry=0x7fffffffb8a0,
Other=..., EndPoints=..., changeInstrs=changeInstrs at entry=false)
at
/tmp/buildd/llvm-toolchain-snapshot-3.9~svn262954/lib/CodeGen/RegisterCoalescer.cpp:2388
#0 0x00007ffff3bad2a0 in (anonymous namespace)::JoinVals::pruneValues
(this=this at entry=0x7fffffffb8a0,
Other=..., EndPoints=..., changeInstrs=changeInstrs at entry=false)
at
/tmp/buildd/llvm-toolchain-snapshot-3.9~svn262954/lib/CodeGen/RegisterCoalescer.cpp:2388
#1 0x00007ffff3bb38da in (anonymous
namespace)::RegisterCoalescer::joinSubRegRanges (this=0x2386a50,
this=0x2386a50, CP=..., LaneMask=8, RRange=..., LRange=...)
at
/tmp/buildd/llvm-toolchain-snapshot-3.9~svn262954/lib/CodeGen/RegisterCoalescer.cpp:2569
#2 (anonymous namespace)::RegisterCoalescer::mergeSubRangeInto
(this=this at entry=0x2386a50, LI=...,
ToMerge=..., LaneMask=8, CP=...)
at
/tmp/buildd/llvm-toolchain-snapshot-3.9~svn262954/lib/CodeGen/RegisterCoalescer.cpp:2622
#3 0x00007ffff3bb4a31 in (anonymous
namespace)::RegisterCoalescer::joinVirtRegs (
this=this at entry=0x2386a50, CP=...)
at
/tmp/buildd/llvm-toolchain-snapshot-3.9~svn262954/lib/CodeGen/RegisterCoalescer.cpp:2688
#4 0x00007ffff3bb54a0 in (anonymous
namespace)::RegisterCoalescer::joinIntervals (CP=...,
this=0x2386a50)
at
/tmp/buildd/llvm-toolchain-snapshot-3.9~svn262954/lib/CodeGen/RegisterCoalescer.cpp:2734
#5 (anonymous namespace)::RegisterCoalescer::joinCopy (Again=<synthetic
pointer>, CopyMI=0xb991b0,
this=0x2386a50)
at
/tmp/buildd/llvm-toolchain-snapshot-3.9~svn262954/lib/CodeGen/RegisterCoalescer.cpp:1449
#6 (anonymous namespace)::RegisterCoalescer::copyCoalesceWorkList
(this=this at entry=0x2386a50,
CurrList=...)
at
/tmp/buildd/llvm-toolchain-snapshot-3.9~svn262954/lib/CodeGen/RegisterCoalescer.cpp:2805
#7 0x00007ffff3bb70bb in (anonymous
namespace)::RegisterCoalescer::coalesceLocals (
this=this at entry=0x2386a50)
at
/tmp/buildd/llvm-toolchain-snapshot-3.9~svn262954/lib/CodeGen/RegisterCoalescer.cpp:2930
#8 0x00007ffff3bb7da8 in (anonymous
namespace)::RegisterCoalescer::joinAllIntervals (this=0x2386a50)
at
/tmp/buildd/llvm-toolchain-snapshot-3.9~svn262954/lib/CodeGen/RegisterCoalescer.cpp:2956
#9 (anonymous namespace)::RegisterCoalescer::runOnMachineFunction
(this=0x2386a50, fn=...)
at
/tmp/buildd/llvm-toolchain-snapshot-3.9~svn262954/lib/CodeGen/RegisterCoalescer.cpp:3006
#10 0x00007ffff39cc752 in llvm::FPPassManager::runOnFunction (this=0x238d260,
F=...)
at
/tmp/buildd/llvm-toolchain-snapshot-3.9~svn262954/lib/IR/LegacyPassManager.cpp:1550
#11 0x00007ffff39cca8b in llvm::FPPassManager::runOnModule (this=0x238d260,
M=...)
at
/tmp/buildd/llvm-toolchain-snapshot-3.9~svn262954/lib/IR/LegacyPassManager.cpp:1571
#12 0x00007ffff39cc3cf in (anonymous namespace)::MPPassManager::runOnModule
(M=..., this=0x238cfd0)
at
/tmp/buildd/llvm-toolchain-snapshot-3.9~svn262954/lib/IR/LegacyPassManager.cpp:1627
#13 llvm::legacy::PassManagerImpl::run (this=0xa96580, M=...)
at
/tmp/buildd/llvm-toolchain-snapshot-3.9~svn262954/lib/IR/LegacyPassManager.cpp:1730
#14 0x00007ffff39cc569 in llvm::legacy::PassManager::run
(this=this at entry=0x7fffffffc6a0, M=...)
at
/tmp/buildd/llvm-toolchain-snapshot-3.9~svn262954/lib/IR/LegacyPassManager.cpp:1761
#15 0x00007ffff4507ef7 in LLVMTargetMachineEmit (T=T at entry=0x239f8a0,
M=M at entry=0xb42a60, OS=...,
codegen=codegen at entry=LLVMObjectFile,
ErrorMessage=ErrorMessage at entry=0x7fffffffc948)
at
/tmp/buildd/llvm-toolchain-snapshot-3.9~svn262954/lib/Target/TargetMachineC.cpp:206
#16 0x00007ffff4508219 in LLVMTargetMachineEmitToMemoryBuffer
(T=T at entry=0x239f8a0, M=M at entry=0xb42a60,
codegen=codegen at entry=LLVMObjectFile,
ErrorMessage=ErrorMessage at entry=0x7fffffffc948,
OutMemBuf=OutMemBuf at entry=0x7fffffffcae8)
at
/tmp/buildd/llvm-toolchain-snapshot-3.9~svn262954/lib/Target/TargetMachineC.cpp:230
#17 0x00007ffff6605584 in (anonymous namespace)::emit_code
(tm=tm at entry=0x239f8a0,
mod=mod at entry=0xb42a60, file_type=file_type at entry=LLVMObjectFile,
out_buffer=out_buffer at entry=0x7fffffffcae8,
r_log="test2.c:36:31: warning: double precision constant requires
cl_khr_fp64, casting to single precision\ntest2.c:44:45: warning: double
precision constant requires cl_khr_fp64, casting to single precision\n"...) at
../../../../../src/gallium/state_trackers/clover/llvm/invocation.cpp:621
#18 0x00007ffff660a34e in (anonymous namespace)::compile_native (
r_log="test2.c:36:31: warning: double precision constant requires
cl_khr_fp64, casting to single precision\ntest2.c:44:45: warning: double
precision constant requires cl_khr_fp64, casting to single precision\n"...,
dump_asm=<optimized out>, processor="pitcairn", triple="amdgcn--",
mod=0xb42a60)
at ../../../../../src/gallium/state_trackers/clover/llvm/invocation.cpp:679
#19 clover::compile_program_llvm (
source="#line 1 \"test2.c\"\n//", '-' <repeats 111 times>, "//\nfloat
foldf3_mul(const float3 a) {\n ---Type <return> to continue, or q <return> to
quit---
return a.s0*a.s1*a.s2;\n}\n\nint"..., headers=..., ir=<optimized out>,
target="pitcairn-amdgcn--",
opts="",
r_log="test2.c:36:31: warning: double precision constant requires
cl_khr_fp64, casting to single precision\ntest2.c:44:45: warning: double
precision constant requires cl_khr_fp64, casting to single precision\n"...) at
../../../../../src/gallium/state_trackers/clover/llvm/invocation.cpp:890
#20 0x00007ffff6600290 in clover::program::build (this=this at entry=0xb4a500,
devs=...,
opts=opts at entry=0xb506d0 "", headers=std::vector of length 0, capacity 0)
at ../../../../../src/gallium/state_trackers/clover/core/program.cpp:63
#21 0x00007ffff65e1a98 in clBuildProgram (d_prog=0xb4a508, num_devs=1,
d_devs=0x7fffffffe1f0,
p_opts=<optimized out>, pfn_notify=0x0, user_data=0x0)
at ../../../../../src/gallium/state_trackers/clover/api/program.cpp:184
#22 0x000000000040460f in CL_programCreate (context=0xb38018, device=0x6486b8,
codes=..., options=...)
at clcc.c:1466
#23 0x0000000000406651 in Action_compile (settings=...) at clcc.c:1716
#24 0x0000000000406344 in main (argc=4, argv=0x7fffffffe508) at clcc.c:1658
I've got a good feeling if this one can get resolved as well the whole thing
might just compile.
Thanks! -Tyson
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160313/d91c6e58/attachment-0001.html>
More information about the mesa-dev
mailing list