[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