From mboxrd@z Thu Jan 1 00:00:00 1970
From: bugzilla-daemon@freedesktop.org
Subject: [Bug 105869] clang crashes when compiling OpenCL kernel
Date: Tue, 03 Apr 2018 21:01:13 +0000
Message-ID:
Bug ID
105869
Summary
clang crashes when compiling OpenCL kernel
Product
Mesa
Version
git
Hardware
Other
OS
All
Status
NEW
Severity
normal
Priority
medium
Component
Drivers/Gallium/radeonsi
Assignee
dri-devel@lists.freedesktop.org
Reporter
vedran@miletic.net
QA Contact
dri-devel@lists.freedesktop.org
(from #radeon and https://paste.debian.net/1018363/)
When compiling the following OpenCL kernel
kernel void PulseWave(global float* buffer, size_t num_harmonics,
float duty_cycle)
{
size_t index =3D get_global_id(0);
float phase =3D buffer[index];
float sample =3D duty_cycle;
float precompute1 =3D (phase - duty_cycle / 2.0) * 2.0 * M_PI;
for (size_t i =3D 1; i <=3D num_harmonics; ++i)
{
float harmonic =3D 2.0 / (i * M_PI) * sin(M_PI * i * duty_c=
ycle)
*
cos(i * precompute1);
sample +=3D harmonic;
}
buffer[index] =3D sample * 2.0 - 1.0;
}
Clang will crash with
Thread 1 "ftz_chiptune_pu" received signal SIGSEGV, Segmentation =
fault.
0x00007fffe6501ba1 in llvm::LiveRange::find(llvm::SlotIndex) () from
/usr/lib/x86_64-linux-gnu/libLLVM-5.0.so.1
(gdb) bt
#0 0x00007fffe6501ba1 in llvm::LiveRange::find(llvm::SlotIndex) () from
/usr/lib/x86_64-linux-gnu/libLLVM-5.0.so.1
#1 0x00007fffe66674a1 in ?? () from /usr/lib/x86_64-linux-gnu/libLLVM-5.0.=
so.1
#2 0x00007fffe66676c1 in ?? () from /usr/lib/x86_64-linux-gnu/libLLVM-5.0.=
so.1
#3 0x00007fffe66697e5 in llvm::RegPressureTracker::getLiveThroughAt(unsign=
ed
int, llvm::SlotIndex) const () from /usr/lib/x86_64-linux-gnu/libLLVM-5.0.s=
o.1
#4 0x00007fffe6669af1 in
llvm::RegPressureTracker::recede(llvm::RegisterOperands const&,
llvm::SmallVectorImpl<llvm::RegisterMaskPair>*) ()
from /usr/lib/x86_64-linux-gnu/libLLVM-5.0.so.1
#5 0x00007fffe66a0229 in
llvm::ScheduleDAGInstrs::buildSchedGraph(llvm::AAResults*,
llvm::RegPressureTracker*, llvm::PressureDiffs*, llvm::LiveIntervals*, bool=
) ()
from /usr/lib/x86_64-linux-gnu/libLLVM-5.0.so.1
#6 0x00007fffe65e7653 in llvm::ScheduleDAGMILive::buildDAGWithRegPressure(=
) ()
from /usr/lib/x86_64-linux-gnu/libLLVM-5.0.so.1
#7 0x00007fffe65e76b9 in llvm::ScheduleDAGMILive::schedule() () from
/usr/lib/x86_64-linux-gnu/libLLVM-5.0.so.1
#8 0x00007fffe758e501 in llvm::GCNScheduleDAGMILive::schedule() () from
/usr/lib/x86_64-linux-gnu/libLLVM-5.0.so.1
#9 0x00007fffe758e26e in llvm::GCNScheduleDAGMILive::finalizeSchedule() ()
from /usr/lib/x86_64-linux-gnu/libLLVM-5.0.so.1
#10 0x00007fffe65e6fa7 in ?? () from /usr/lib/x86_64-linux-gnu/libLLVM-5.0.=
so.1
#11 0x00007fffe657cae0 in
llvm::MachineFunctionPass::runOnFunction(llvm::Function&) () from
/usr/lib/x86_64-linux-gnu/libLLVM-5.0.so.1
#12 0x00007fffe63deac8 in llvm::FPPassManager::runOnFunction(llvm::Function=
&)
() from /usr/lib/x86_64-linux-gnu/libLLVM-5.0.so.1
#13 0x00007fffe6fb7b50 in ?? () from /usr/lib/x86_64-linux-gnu/libLLVM-5.0.=
so.1
#14 0x00007fffe63de3af in llvm::legacy::PassManagerImpl::run(llvm::Module&a=
mp;) ()
from /usr/lib/x86_64-linux-gnu/libLLVM-5.0.so.1
#15 0x00007ffff42227ce in ?? () from
/usr/lib/x86_64-linux-gnu/libMesaOpenCL.so.1
#16 0x00007ffff4222ed0 in ?? () from
/usr/lib/x86_64-linux-gnu/libMesaOpenCL.so.1
#17 0x00007ffff421e6a7 in ?? () from
/usr/lib/x86_64-linux-gnu/libMesaOpenCL.so.1
#18 0x00007ffff420fea1 in ?? () from
/usr/lib/x86_64-linux-gnu/libMesaOpenCL.so.1
#19 0x00007ffff41efe02 in ?? () from
/usr/lib/x86_64-linux-gnu/libMesaOpenCL.so.1
#20 0x0000555555561129 in cl::Program::build (this=3D0x7fffffffde10, option=
s=3D0x0,
notifyFptr=3D0x0, data=3D0x0) at /usr/include/CL/cl2.hpp:6321