<div dir="ltr"><div class="gmail_default" style="font-family:courier new,monospace;font-size:small">Hello,<br clear="all"></div><div class="gmail_default" style="font-family:courier new,monospace;font-size:small"><br></div><div class="gmail_default" style="font-family:courier new,monospace;font-size:small">For some OpenMP target offloading code, I see the following at the top:</div><div class="gmail_default" style="font-family:courier new,monospace;font-size:small">-----</div><div class="gmail_default" style="font-family:courier new,monospace;font-size:small"><br></div><div class="gmail_default" style="font-family:courier new,monospace;font-size:small"><p class="gmail-MsoPlainText" style="margin:0in 0in 0.0001pt;font-size:10.5pt;font-family:Consolas"><span style="font-family:"Courier New"">;
__CLANG_OFFLOAD_BUNDLE____START__ openmp-nvptx64-nvidia-cuda<br>
; ModuleID = 'if.cpp'<br>
source_filename = "if.cpp"<br>
target datalayout = "e-i64:64-i128:128-v16:16-v32:32-n16:32:64"<br>
target triple = "nvptx64-nvidia-cuda"<br>
<br>
%struct.ident_t = type { i32, i32, i32, i32, i8* }<br>
%class.omptarget_nvptx_Queue = type { [32 x
%class.omptarget_nvptx_ThreadPrivateContext], [32 x
%class.omptarget_nvptx_ThreadPrivateContext*], i32, [32 x i32], i32, [8 x i8]
}<br>
%class.omptarget_nvptx_ThreadPrivateContext = type { %class.omptarget_nvptx_TeamDescr,
[1024 x %class.omptarget_nvptx_TaskDescr], [1024 x
%class.omptarget_nvptx_TaskDescr*], %union.anon, [1024 x i32], [1024 x i64],
[1024 x i64], [1024 x i64], [1024 x i64], i64, [8 x i8] }<br>
%class.omptarget_nvptx_TeamDescr = type { %class.omptarget_nvptx_TaskDescr,
%class.omptarget_nvptx_WorkDescr, i64, [8 x i8], [32 x
%struct.__kmpc_data_sharing_worker_slot_static], [1 x
%struct.__kmpc_data_sharing_master_slot_static] }<br>
%class.omptarget_nvptx_TaskDescr = type { %"struct.omptarget_nvptx_TaskDescr::SavedLoopDescr_items",
%"struct.omptarget_nvptx_TaskDescr::TaskDescr_items",
%class.omptarget_nvptx_TaskDescr* }<br>
%"struct.omptarget_nvptx_TaskDescr::SavedLoopDescr_items" = type {
i64, i64, i64, i64, i32 }<br>
%"struct.omptarget_nvptx_TaskDescr::TaskDescr_items" = type { i8, i8,
i16, i64 }<br>
%class.omptarget_nvptx_WorkDescr = type { %class.omptarget_nvptx_TaskDescr
}<br>
%struct.__kmpc_data_sharing_worker_slot_static = type {
%struct.__kmpc_data_sharing_slot*, %struct.__kmpc_data_sharing_slot*, i8*, i8*,
[8192 x i8] }<br>
%struct.__kmpc_data_sharing_slot = type { %struct.__kmpc_data_sharing_slot*,
%struct.__kmpc_data_sharing_slot*, i8*, i8*, [0 x i8] }<br>
%struct.__kmpc_data_sharing_master_slot_static = type {
%struct.__kmpc_data_sharing_slot*, %struct.__kmpc_data_sharing_slot*, i8*, i8*,
[256 x i8] }<br>
%union.anon = type { [1024 x i16] }<br>
%struct.DataSharingStateTy = type { [32 x %struct.__kmpc_data_sharing_slot*],
[32 x i8*], [32 x i8*], [32 x i32] }<br>
%printf_args.5 = type { i32 }<br>
<br>
@"_openmp_kernel_static_glob_rd$ptr" = internal addrspace(3) global
i8* null<br>
@.str = private unnamed_addr constant [23 x i8]
c";unknown;unknown;0;0;;\00", align 1<br>
@0 = private unnamed_addr constant %struct.ident_t { i32 0, i32 2050, i32 3,
i32 0, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i32 0, i32 0)
}, align 8<br>
@1 = private unnamed_addr constant %struct.ident_t { i32 0, i32 514, i32 3, i32
0, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i32 0, i32 0) },
align 8<br>
@.str2 = private unnamed_addr constant [4 x i8] c"%d\0A\00", align
1<br>
@2 = private unnamed_addr constant %struct.ident_t { i32 0, i32 2, i32 3, i32
0, i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str, i32 0, i32 0) },
align 8<br>
@__omp_offloading_2c_19fe4918__Z4FUNCi_l7_exec_mode = weak constant i8 0<br>
@llvm.compiler.used = appending global [1 x i8*] [i8*
@__omp_offloading_2c_19fe4918__Z4FUNCi_l7_exec_mode], section
"llvm.metadata"<br>
@parallelLevel = external dso_local local_unnamed_addr addrspace(3) global [32
x i8], align 1<br>
@threadsInTeam = external dso_local local_unnamed_addr addrspace(3) global i16,
align 2<br>
@execution_param = external dso_local local_unnamed_addr addrspace(3) global
i32, align 4<br>
@usedSlotIdx = external dso_local local_unnamed_addr addrspace(3) global i32,
align 4<br>
@omptarget_nvptx_device_State = external dso_local addrspace(1) global [84 x
%class.omptarget_nvptx_Queue], align 16<br>
@omptarget_nvptx_threadPrivateContext = external dso_local local_unnamed_addr
addrspace(3) global %class.omptarget_nvptx_ThreadPrivateContext*, align 8<br>
@DataSharingState = external dso_local addrspace(3) global
%struct.DataSharingStateTy, align 8<br>
</span></p><p class="gmail-MsoPlainText" style="margin:0in 0in 0.0001pt;font-size:10.5pt;font-family:Consolas"><span style="font-family:"Courier New"">---</span></p><p class="gmail-MsoPlainText" style="margin:0in 0in 0.0001pt;font-size:10.5pt;font-family:Consolas"><span style="font-family:"Courier New""><br></span></p><p class="gmail-MsoPlainText" style="margin:0in 0in 0.0001pt;font-size:10.5pt;font-family:Consolas"><span style="font-family:"Courier New"">Which part of the codegen is producing/responsible for this code?</span></p></div><div class="gmail_default" style="font-family:courier new,monospace;font-size:small"><br></div><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>Abid M. Malik<br>******************************************************<br>"I have learned silence from the talkative, toleration from the intolerant, and kindness from the unkind"---Gibran<br>"Success is not for the chosen few, but for the few who choose" --- John Maxwell<br>"Being a good person does not depend on your religion or status in life, your race or skin color, political views or culture. IT DEPENDS ON HOW GOOD YOU TREAT OTHERS"--- Abid<br>"The Universe is talking to us, and the language of the Universe is mathematics."----Abid<br> </div></div></div></div>