Dear Maintainer,
When compiling OpenCL's sourcecode include more than (>) two
__kernel functions, and calling clEnqueueTask() or clEnqueueNDRangeKernels(),
program was SEGFAULT (called with any __kernel functrions).
Not SEGFAULT with less than (<=) two __kernel functions were included.
I tested with ocl-icd-libopencl1 both 1.3-3 and 2.2.3-1, this issue was
occured same as.
Cheers,
Ohta.
Stack dump is below, see upper than #24:
----
Program received signal SIGSEGV, Segmentation fault.
(gdb) where
#0 llvm::MachineRegisterInfo::addRegOperandToUseList (this=0x105e710,
MO=MO@entry=0x1128160)
at
/tmp/buildd/llvm-toolchain-3.5-3.5/lib/CodeGen/MachineRegisterInfo.cpp:176
#1 0x00007fffe0de5b26 in llvm::MachineInstr::addOperand
(this=0x1128100, MF=..., Op=...)
at
/tmp/buildd/llvm-toolchain-3.5-3.5/lib/CodeGen/MachineInstr.cpp:713
#2 0x00007fffe0f31a2d in addReg (SubReg=<optimized out>,
flags=<optimized out>, RegNo=<optimized out>, this=<optimized out>)
at
/tmp/buildd/llvm-toolchain-3.5-3.5/include/llvm/CodeGen/MachineInstrBuilder.h:77
#3 llvm::InstrEmitter::EmitSpecialNode (this=0x105e710,
Node=0x1062f40, IsClone=176, IsCloned=233, VRBaseMap=...)
at
/tmp/buildd/llvm-toolchain-3.5-3.5/lib/CodeGen/SelectionDAG/InstrEmitter.cpp:897
#4 0x00007fffe0fad699 in EmitNode (VRBaseMap=..., IsCloned=<optimized
out>, IsClone=<optimized out>, Node=<optimized out>, this=<optimized
out>)
at
/tmp/buildd/llvm-toolchain-3.5-3.5/lib/CodeGen/SelectionDAG/InstrEmitter.h:124
#5 llvm::ScheduleDAGSDNodes::EmitSchedule (this=0x10e7160,
InsertPos=...)
at
/tmp/buildd/llvm-toolchain-3.5-3.5/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp:846
#6 0x00007fffe1010c7b in llvm::SelectionDAGISel::CodeGenAndEmitDAG
(this=this@entry=0xde6ad0)
at
/tmp/buildd/llvm-toolchain-3.5-3.5/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:792
#7 0x00007fffe1010f1c in llvm::SelectionDAGISel::SelectBasicBlock
(this=this@entry=0xde6ad0, Begin=..., Begin@entry=..., End=...,
End@entry=...,
HadTailCall=@0x7fffffffc00f: false) at
/tmp/buildd/llvm-toolchain-3.5-3.5/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:604
#8 0x00007fffe1013ba2 in llvm::SelectionDAGISel::SelectAllBasicBlocks
(this=0xde6ad0, Fn=...)
at
/tmp/buildd/llvm-toolchain-3.5-3.5/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1239
#9 0x00007fffe101518e in llvm::SelectionDAGISel::runOnMachineFunction
(this=0xde6ad0, mf=...)
at
/tmp/buildd/llvm-toolchain-3.5-3.5/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:451
#10 0x00007fffe0a31357 in llvm::FPPassManager::runOnFunction
(this=0x1790990, F=...)
at
/tmp/buildd/llvm-toolchain-3.5-3.5/lib/IR/LegacyPassManager.cpp:1545
#11 0x00007fffe0a313db in llvm::FPPassManager::runOnModule
(this=0x1790990, M=...)
at
/tmp/buildd/llvm-toolchain-3.5-3.5/lib/IR/LegacyPassManager.cpp:1565
#12 0x00007fffe0a33d99 in runOnModule (M=..., this=0x10ead10) at
/tmp/buildd/llvm-toolchain-3.5-3.5/lib/IR/LegacyPassManager.cpp:1623
#13 llvm::legacy::PassManagerImpl::run (this=0x10ea9c0, M=...) at
/tmp/buildd/llvm-toolchain-3.5-3.5/lib/IR/LegacyPassManager.cpp:1730
#14 0x00007fffe1047e4d in LLVMTargetMachineEmit (T=0xde7ff0, M=0x0,
OS=..., codegen=LLVMObjectFile, ErrorMessage=0x7fffffffc400)
at
/tmp/buildd/llvm-toolchain-3.5-3.5/lib/Target/TargetMachineC.cpp:217
#15 0x00007fffe1048007 in LLVMTargetMachineEmitToMemoryBuffer
(T=0xde7ff0, M=0xdd3cd0, codegen=LLVMObjectFile,
ErrorMessage=0x7fffffffc400,
OutMemBuf=0x7fffffffc408) at
/tmp/buildd/llvm-toolchain-3.5-3.5/lib/Target/TargetMachineC.cpp:243
#16 0x00007fffd8c07cbd in ?? () from
/usr/lib/x86_64-linux-gnu/gallium-pipe/pipe_radeonsi.so
#17 0x00007fffd8c16efb in ?? () from
/usr/lib/x86_64-linux-gnu/gallium-pipe/pipe_radeonsi.so
#18 0x00007fffd8c0dd0c in ?? () from
/usr/lib/x86_64-linux-gnu/gallium-pipe/pipe_radeonsi.so
#19 0x00007fffd919d457 in ?? () from
/usr/lib/x86_64-linux-gnu/libMesaOpenCL.so
#20 0x00007fffd919da69 in ?? () from
/usr/lib/x86_64-linux-gnu/libMesaOpenCL.so
#21 0x00007fffd918447c in ?? () from
/usr/lib/x86_64-linux-gnu/libMesaOpenCL.so
#22 0x00007fffd9199870 in ?? () from
/usr/lib/x86_64-linux-gnu/libMesaOpenCL.so
#23 0x00007fffd919a430 in ?? () from
/usr/lib/x86_64-linux-gnu/libMesaOpenCL.so
#24 0x00007fffd9186731 in ?? () from
/usr/lib/x86_64-linux-gnu/libMesaOpenCL.so
#25 0x0000000000454841 in GLCLDraw::SetupTable (this=0xc78e30) at
/home/whatisthis/src/XM7-for-SDL/linux-sdl/ui-agar/agar_glcl.cpp:838
#26 0x00000000004508a2 in InitContextCL () at
/home/whatisthis/src/XM7-for-SDL/linux-sdl/ui-agar/agar_glutil.cpp:134
---Type <return> to continue, or q <return> to quit---
#27 0x000000000044fc88 in AGEventDrawGL2 (event=<optimized out>) at
/home/whatisthis/src/XM7-for-SDL/linux-sdl/ui-agar/agar_gldraw2.cpp:286
#28 0x0000000000521a3d in AG_GLViewDraw (obj=0xac4be0) at glview.c:333
#29 0x00000000004c02ac in AG_WidgetDraw (p=p@entry=0xac4be0) at
widget.c:1243
#30 0x00000000004d4ae8 in Draw (obj=<optimized out>) at box.c:123
#31 0x00000000004c02ac in AG_WidgetDraw (p=p@entry=0x9c7220) at
widget.c:1243
#32 0x00000000004c3818 in Draw (obj=0x9b95c0) at window.c:696
#33 0x00000000004c02ac in AG_WidgetDraw (p=0x9b95c0) at widget.c:1243
#34 0x00000000004419d1 in AG_WindowDrawQueued () at
/usr/local/include/agar/agar/gui/window.h:255
#35 AGDrawTaskEvent (flag=<optimized out>) at
/home/whatisthis/src/XM7-for-SDL/linux-sdl/ui-agar/agar_guicore.cpp:125
#36 0x0000000000448f16 in MainLoop (argc=-13024, argv=0x7fffffffd520)
at /home/whatisthis/src/XM7-for-SDL/linux-sdl/ui-agar/agar_main.cpp:563
#37 0x00000000004301e3 in main (argc=1, argv=0x7fffffffe068) at
/home/whatisthis/src/XM7-for-SDL/linux-sdl/sdl/windows_main.cpp:223
---