[LLVMdev] Error at backend compilation when created a .ptx file for opencl use

L Dumas loic.dumas at c-s.fr
Mon Mar 17 05:56:25 PDT 2014


Hi,

I 'm kind of new to llvm/clang/llc and when I tried to compile a simple
opencl code... well it kind of failed... 

Now it might be just me not doing what is required for the cross-compilation
to succeed, but my opencl code is not tricky though llvm fails giving me a
"Cannot select: 0x1c8a340: i32 = ExternalSymbol'log2f'" error. 

I do have a log function called in my code which basically does the
following : 

test.cl: 
float random 
( 
    float* ctr, 
    float* key 
) 
{ 
    *key = *ctr-1; 
    float b = *ctr; 
    float c = *key; 
    return (b+c)/(b+c+2.0f); 
} 
__kernel void kernel 
( 
    __global    float           *tab 
) 
{ 
    unsigned int idx = get_local_id(1) + get_local_size(1) *
(get_local_id(0) + get_local_size(0) * ( get_group_id(1) + get_group_id(0) *
get_num_groups(1))); 
    float configThr = (float)idx; 
    float etatThr = (float)idx; 
    tab[idx] = tab[idx] * log(1.f-random(&etatThr, &configThr)); 
}; 



As you'll notice this code makes no sense at all but that is not the point
as I tried to highlight how simple it is. 

I'm using the following lines to build a .ptx file : 
clang   \ 
        -target nvptx \ 
        -S \ 
        -std=CL1.1 \ 
        test.cl -o test.ll \ 
        -I/usr/local/include/clc/ \ 
        -include clc/clc.h \ 
        -Dcl_clang_storage_class_specifiers \ 
        -fmacro-backtrace-limit=0 \ 
        -emit-llvm 

llc -march nvptx  test.ll -mcpu=sm_20 -mattr=ptx30 -o test.ptx 

I have llvm/clang 3.4 from january 2014. 

Is this something I'm doing wrong ? 
Can you guys think of workaround I could try ? 

Anyway thank you for reading that, any hint will be greatly appreciated... 


--- 
Apparently when the variable returned by my random function can clearly be
identified as positive and lesser than 1 then it compiles just fine... 



--
View this message in context: http://llvm.1065342.n5.nabble.com/Error-at-backend-compilation-when-created-a-ptx-file-for-opencl-use-tp66872.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.




More information about the llvm-dev mailing list