Hi
#else
  passes.push_back("workitem-handler-chooser");
  passes.push_back("workgroup");
  passes.push_back("globaldce");
  passes.push_back("flatten");
  passes.push_back("wi-aa");
  passes.push_back("workitemrepl");
//  passes.push_back("STANDARD_OPTS");
  const std::string wg_method =
    pocl_get_string_option("POCL_WORK_GROUP_METHOD", "loopvec");
#endif

     I commented all the passes and  only push these these passes (as above), 
when I run the cl file compile into the so. The so is lack of some variable  
that is undefined .
   
These the output, that some global variable is undefined.
localhost:/system/bin # nm /system/lib64/crtend_so.o  -o 
/sdcard/pocl/kcache/JE/DDOPBDCLJEBGFADLGMMPEJPMKKFBGLFFAELBI/scarlar_add/1-1-1/scarlar_add.so
 | grep " U "
/sdcard/pocl/kcache/JE/DDOPBDCLJEBGFADLGMMPEJPMKKFBGLFFAELBI/scarlar_add/1-1-1/scarlar_add.so:
                 U __cxa_atexit@@LIBC
/sdcard/pocl/kcache/JE/DDOPBDCLJEBGFADLGMMPEJPMKKFBGLFFAELBI/scarlar_add/1-1-1/scarlar_add.so:
                 U __cxa_finalize@@LIBC
/sdcard/pocl/kcache/JE/DDOPBDCLJEBGFADLGMMPEJPMKKFBGLFFAELBI/scarlar_add/1-1-1/scarlar_add.so:
                 U __register_atfork@@LIBC
/sdcard/pocl/kcache/JE/DDOPBDCLJEBGFADLGMMPEJPMKKFBGLFFAELBI/scarlar_add/1-1-1/scarlar_add.so:
                 U _group_id_x
/sdcard/pocl/kcache/JE/DDOPBDCLJEBGFADLGMMPEJPMKKFBGLFFAELBI/scarlar_add/1-1-1/scarlar_add.so:
                 U _group_id_y
/sdcard/pocl/kcache/JE/DDOPBDCLJEBGFADLGMMPEJPMKKFBGLFFAELBI/scarlar_add/1-1-1/scarlar_add.so:
                 U _group_id_z
/sdcard/pocl/kcache/JE/DDOPBDCLJEBGFADLGMMPEJPMKKFBGLFFAELBI/scarlar_add/1-1-1/scarlar_add.so:
                 U _local_id_x
/sdcard/pocl/kcache/JE/DDOPBDCLJEBGFADLGMMPEJPMKKFBGLFFAELBI/scarlar_add/1-1-1/scarlar_add.so:
                 U _local_id_y
/sdcard/pocl/kcache/JE/DDOPBDCLJEBGFADLGMMPEJPMKKFBGLFFAELBI/scarlar_add/1-1-1/scarlar_add.so:
                 U _local_id_z
localhost:/system/bin #

I do not how to handle it .  can you tell me the which passes generate it why 
it failed, I can change the code .

Environment:
Arm64 server, non-GPUs

BR
Owen

-----邮件原件-----
发件人: Pekka Jääskeläinen [mailto:[email protected]] 
发送时间: 2017年11月16日 20:29
收件人: Wuweijia <[email protected]>; Portable Computing Language development 
discussion <[email protected]>
抄送: Fanbohao <[email protected]>
主题: Re: 答复: 答复: [pocl-devel] [POCL_DBG] How to debug the cl file.



On 16.11.2017 08:46, Wuweijia wrote:
> I do not how the pocl add the definition of   _local_id_x ,
> _local_id_y ... to the final shared object. Can you show me where or 
> how. I check the code that _local_id_x _local_id_y variable  is 
> external, not  the definition.

They are placeholder declarations which are converted to "context array" field 
accesses by the LLVM pass in lib/llvmopencl/Workgroup.cc (privatizeContext).

The "context array" is given as a hidden extra argument to the kernel and 
contains ids etc. related to the launch of the kernel.

For non-GPUs, the ids are iterated by the parallel work item loops generated to 
execute the whole work-group's WIs in a single function.

BR,
--
Pekka
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
pocl-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pocl-devel

Reply via email to