[Beignet] OpenCL compilation bug/assert

Hugh Perkins hughperkins at gmail.com
Mon Oct 10 13:04:11 UTC 2016


Following code:

struct Eigen__TensorEvaluator_0 {
    global float* f0;
};

struct Eigen__internal__scalar_constant_op {
    float f0;
};

struct Eigen__TensorEvaluator_1 {
    struct Eigen__internal__scalar_constant_op f0;
};

struct Eigen__TensorEvaluator {
    struct Eigen__TensorEvaluator_0 f0;
    struct Eigen__TensorEvaluator_1 f1;
};

kernel void foo(global struct Eigen__TensorEvaluator* pstruct, global
float* floats0) {
    pstruct[0].f0.f0 = floats0;
    pstruct[0].f0.f0[0] = pstruct[0].f1.f0.f0;
}


... causes the following compilation error, using beignet commit
2c1f2468b82 , on an Intel HD 5500 gpu:

context <pyopencl.Context at 0x27c5380 on <pyopencl.Device 'Intel(R) HD
Graphics 5500 BroadWell U-Processor GT2' on 'Intel Gen OCL Driver' at
0x7f60e0d24bc0>>
make: 'test/eigen/generated/test_cuda_nullary-device.cl' is up to date.

compiling cl for test/eigen/generated/test_cuda_nullary-device.cl ...
ASSERTION FAILED: (isa<AllocaInst>(ptr) || ptrCandidate.empty()) &&
"storing/loading pointers only support private array"
  at file /home/ubuntu/git/beignet/backend/src/llvm/llvm_gen_backend.cpp,
function void gbe::GenWriter::findPointerEscape(llvm::Value*,
std::set<llvm::Value*>&, bool, std::vector<llvm::Value*,
std::allocator<llvm::Value*> >&), line 953
Trace/breakpoint trap
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/beignet/attachments/20161010/dde93deb/attachment.html>


More information about the Beignet mailing list