<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - OpenCL segfaults during compilation"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=94503#c2">Comment # 2</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - OpenCL segfaults during compilation"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=94503">bug 94503</a>
              from <span class="vcard"><a class="email" href="mailto:twhitehead@gmail.com" title="Tyson Whitehead <twhitehead@gmail.com>"> <span class="fn">Tyson Whitehead</span></a>
</span></b>
        <pre>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@entry=0x7fffffffb8a0, 
    Other=..., EndPoints=..., changeInstrs=changeInstrs@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@entry=0x7fffffffb8a0, 
    Other=..., EndPoints=..., changeInstrs=changeInstrs@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@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@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@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@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@entry=0x7fffffffc6a0, M=...)
    at
/tmp/buildd/llvm-toolchain-snapshot-3.9~svn262954/lib/IR/LegacyPassManager.cpp:1761
#15 0x00007ffff4507ef7 in LLVMTargetMachineEmit (T=T@entry=0x239f8a0,
M=M@entry=0xb42a60, OS=..., 
    codegen=codegen@entry=LLVMObjectFile,
ErrorMessage=ErrorMessage@entry=0x7fffffffc948)
    at
/tmp/buildd/llvm-toolchain-snapshot-3.9~svn262954/lib/Target/TargetMachineC.cpp:206
#16 0x00007ffff4508219 in LLVMTargetMachineEmitToMemoryBuffer
(T=T@entry=0x239f8a0, M=M@entry=0xb42a60, 
    codegen=codegen@entry=LLVMObjectFile,
ErrorMessage=ErrorMessage@entry=0x7fffffffc948, 
    OutMemBuf=OutMemBuf@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@entry=0x239f8a0, 
    mod=mod@entry=0xb42a60, file_type=file_type@entry=LLVMObjectFile, 
    out_buffer=out_buffer@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@entry=0xb4a500,
devs=..., 
    opts=opts@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</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>