compiler crash

compiler crash

Dear all, 

I'm using the Kernel Builder for OpenCL API - compiler command line, version 1.4.0.117.

Compiler arguments: ioc32.exe -cmd=build -input="inputfile.cl" -output="outputfile.out" - VS -device=CPU - simd=default

Setting: Windows 8.1 64x, Core i5-3320M 

It crashes while compiling this program: 

struct Foo
{
	int v;
};

__kernel void test()
{
	struct Foo* bar;
	bar->v = 0;
}

Can anyone reproduce this behavior?

Stackdump is attached. Download stackdump.txt

Download stackdump.txt

Forlom

6 Beiträge / 0 neu
Letzter Beitrag
Nähere Informationen zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.

Hi Forlom,

Thank you for reporting this issue. I will submit a ticket for it.
But I hope you understand that while the compiler shouldn't crash in this case, the kernel is invalid - the value of

bar

is uninitialized.

Thanks,
Yuri

Dear Yuri, 

thanks for your answer. I'm aware of the fact that this kernel is invalid. However, I've experienced this behavior with initialized pointers, too. Not in this simple example though. It seems like a bug in the vectorizer. Is it somehow possible to deactivate it in order to work around this problem? 

You can use vec_type_hint attribute to disable implicit vectorization. Try this version:

struct Foo {
  int v;
};

__kernel __attribute__((vec_type_hint(float8))) void test()
{
  struct Foo* bar;
  bar->v = 0;
}
 

I have a similar compiler crash.
Trying to compile the code below in kernel builder crashes the compiler (not the gui app).
Kernel builder version 1.2.0.117, Intel OpenC SDK version 4.4.

If I fix the indicated error in the kernel and instead make the same error on the other line (using 'r' instead of 'result') the kernel is compiled and 'successfully' vectorized.

__kernel void Mult(
    __global void* source,
    uint source_offset,
    __global void* result,
    uint result_offset,
    uint m)
{
    __global uint* s = (__global uint *)((__global char *)s + source_offset); // 's' should be 'source'
    __global uint* r = (__global uint *)((__global char *)result + result_offset);

    const int id = get_global_id(0);

    s[id] = r[id] * m;
}

Problem signature:
  Problem Event Name:    APPCRASH
  Application Name:    ioc64.exe
  Application Version:    4.4.0.117
  Application Timestamp:    536bc22b
  Fault Module Name:    OclCpuBackEnd64.dll
  Fault Module Version:    4.4.0.117
  Fault Module Timestamp:    536bc219
  Exception Code:    c0000005
  Exception Offset:    00000000000710f5
  OS Version:    6.1.7601.2.1.0.256.48
  Locale ID:    2057
  Additional Information 1:    2fe5
  Additional Information 2:    2fe5cc5171677903e4ab86dbd74fe11c
  Additional Information 3:    d5c9
  Additional Information 4:    d5c9a8a0b641b622f9827761db4ef80c

Thanks for this report.  Filed as a compiler bug.

Melden Sie sich an, um einen Kommentar zu hinterlassen.