Skip to content

Commit 495d6b8

Browse files
committed
simplify some code, restore mis-ordered symbols
1 parent bd59851 commit 495d6b8

File tree

4 files changed

+49
-48
lines changed

4 files changed

+49
-48
lines changed

sycl/source/detail/kernel_compiler/kernel_compiler_opencl.cpp

+16-19
Original file line numberDiff line numberDiff line change
@@ -82,38 +82,35 @@ void loadOclocLibrary(const std::vector<uint32_t> &IPVersionVec) {
8282

8383
// attemptLoad() sets OclocLibrary value by side effect.
8484
auto attemptLoad = [&](std::string path) {
85-
void *tempPtr = OclocLibrary.get();
86-
if (tempPtr == nullptr) {
87-
// Try loading from absolute path. Make sure it's ok.
88-
// Every statement here throws.
89-
try {
90-
tempPtr = sycl::detail::ur::loadOsLibrary(path);
91-
OclocLibrary.reset(tempPtr);
85+
void *tempPtr;
86+
try {
87+
// Load then perform checks. Each check throws.
88+
tempPtr = sycl::detail::ur::loadOsLibrary(path);
89+
OclocLibrary.reset(tempPtr);
9290

93-
if (tempPtr == nullptr)
94-
throw sycl::exception(make_error_code(errc::build),
95-
"Unable to load ocloc from " + path);
91+
if (tempPtr == nullptr)
92+
throw sycl::exception(make_error_code(errc::build),
93+
"Unable to load ocloc from " + path);
9694

97-
checkOclocLibrary(tempPtr);
95+
checkOclocLibrary(tempPtr);
9896

99-
InvokeOclocQuery(IPVersionVec, "CL_DEVICE_OPENCL_C_ALL_VERSIONS");
100-
} catch (const sycl::exception &) {
101-
tempPtr = nullptr;
102-
OclocLibrary.reset(tempPtr);
103-
}
97+
InvokeOclocQuery(IPVersionVec, "CL_DEVICE_OPENCL_C_ALL_VERSIONS");
98+
} catch (const sycl::exception &) {
99+
tempPtr = nullptr;
100+
OclocLibrary.reset(tempPtr);
104101
}
102+
105103
return tempPtr;
106104
};
107105

108-
// Load and exit.
106+
// Attempt to load each, exiting as soon as we find compatible ocloc.
109107
for (auto path : OclocPaths) {
110108
void *tempPtr = attemptLoad(path);
111109
if (tempPtr != nullptr)
112110
return;
113111
}
114112

115-
// If we haven't exited during the for loop, then we throw to indicate
116-
// failure.
113+
// If we haven't exited yet, then throw to indicate failure.
117114
throw sycl::exception(make_error_code(errc::build), "Unable to load ocloc");
118115
}
119116

sycl/source/kernel_bundle.cpp

+27-23
Original file line numberDiff line numberDiff line change
@@ -394,29 +394,33 @@ bool is_source_kernel_bundle_supported(
394394
// Support is limited to the opencl and level_zero backends.
395395
bool BE_Acceptable = (BE == sycl::backend::ext_oneapi_level_zero) ||
396396
(BE == sycl::backend::opencl);
397-
if (BE_Acceptable) {
398-
if (Language == source_language::opencl) {
399-
std::vector<ur_device_handle_t> DeviceVec;
400-
DeviceVec.reserve(DeviceImplVec.size());
401-
for (const auto &Impl : DeviceImplVec)
402-
DeviceVec.push_back(Impl->getHandleRef());
403-
404-
const AdapterPtr &Adapter = DeviceImplVec[0]->getAdapter();
405-
std::vector<uint32_t> IPVersionVec(DeviceVec.size());
406-
std::transform(DeviceVec.begin(), DeviceVec.end(), IPVersionVec.begin(),
407-
[&](ur_device_handle_t d) {
408-
uint32_t ipVersion = 0;
409-
Adapter->call<UrApiKind::urDeviceGetInfo>(
410-
d, UR_DEVICE_INFO_IP_VERSION, sizeof(uint32_t),
411-
&ipVersion, nullptr);
412-
return ipVersion;
413-
});
414-
return detail::OpenCLC_Compilation_Available(IPVersionVec);
415-
} else if (Language == source_language::spirv) {
416-
return true;
417-
} else if (Language == source_language::sycl) {
418-
return detail::SYCL_JIT_Compilation_Available();
419-
}
397+
if (!BE_Acceptable)
398+
return false;
399+
400+
if (Language == source_language::spirv) {
401+
return true;
402+
} else if (Language == source_language::sycl) {
403+
return detail::SYCL_JIT_Compilation_Available();
404+
} else if (Language == source_language::opencl) {
405+
if (DeviceImplVec.empty())
406+
return false;
407+
408+
const AdapterPtr &Adapter = DeviceImplVec[0]->getAdapter();
409+
std::vector<uint32_t> IPVersionVec;
410+
IPVersionVec.reserve(DeviceImplVec.size());
411+
412+
std::transform(DeviceImplVec.begin(), DeviceImplVec.end(),
413+
std::back_inserter(IPVersionVec),
414+
[&](const DeviceImplPtr &Impl) {
415+
uint32_t ipVersion = 0;
416+
ur_device_handle_t DeviceHandle = Impl->getHandleRef();
417+
Adapter->call<UrApiKind::urDeviceGetInfo>(
418+
DeviceHandle, UR_DEVICE_INFO_IP_VERSION,
419+
sizeof(uint32_t), &ipVersion, nullptr);
420+
return ipVersion;
421+
});
422+
423+
return detail::OpenCLC_Compilation_Available(IPVersionVec);
420424
}
421425

422426
// otherwise

sycl/test/abi/sycl_symbols_linux.dump

+1-1
Original file line numberDiff line numberDiff line change
@@ -3564,9 +3564,9 @@ _ZN4sycl3_V17handler26setNDRangeDescriptorPaddedENS0_5rangeILi3EEES3_NS0_2idILi3
35643564
_ZN4sycl3_V17handler26setNDRangeDescriptorPaddedENS0_5rangeILi3EEEbi
35653565
_ZN4sycl3_V17handler27addLifetimeSharedPtrStorageESt10shared_ptrIKvE
35663566
_ZN4sycl3_V17handler27computeFallbackKernelBoundsEmm
3567-
_ZN4sycl3_V17handler28extractArgsAndReqsFromLambdaEPcPFNS0_6detail19kernel_param_desc_tEiEmb
35683567
_ZN4sycl3_V17handler28extractArgsAndReqsFromLambdaEPcRKSt6vectorINS0_6detail19kernel_param_desc_tESaIS5_EEb
35693568
_ZN4sycl3_V17handler28extractArgsAndReqsFromLambdaEPcmPKNS0_6detail19kernel_param_desc_tEb
3569+
_ZN4sycl3_V17handler28extractArgsAndReqsFromLambdaEPcPFNS0_6detail19kernel_param_desc_tEiEmb
35703570
_ZN4sycl3_V17handler28memcpyToHostOnlyDeviceGlobalEPKvS3_mbmm
35713571
_ZN4sycl3_V17handler28setArgsToAssociatedAccessorsEv
35723572
_ZN4sycl3_V17handler28setStateExplicitKernelBundleEv

sycl/test/abi/sycl_symbols_windows.dump

+5-5
Original file line numberDiff line numberDiff line change
@@ -354,9 +354,7 @@
354354
??0dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAA@AEBV?$command_graph@$0A@@12345@AEBV?$vector@V?$function@$$A6AXAEAVhandler@_V1@sycl@@@Z@std@@V?$allocator@V?$function@$$A6AXAEAVhandler@_V1@sycl@@@Z@std@@@2@@std@@@Z
355355
??0dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@QEAA@$$QEAV0123456@@Z
356356
??0dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@QEAA@AEBV0123456@@Z
357-
??0dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@QEAA@V?$command_graph@$0A@@23456@@Z
358357
??0dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@QEAA@V?$command_graph@$0A@@23456@_KPEBX@Z
359-
??0dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@QEAA@XZ
360358
??0event@_V1@sycl@@AEAA@V?$shared_ptr@Vevent_impl@detail@_V1@sycl@@@std@@@Z
361359
??0event@_V1@sycl@@QEAA@$$QEAV012@@Z
362360
??0event@_V1@sycl@@QEAA@AEBV012@@Z
@@ -402,8 +400,8 @@
402400
??0gpu_selector@_V1@sycl@@QEAA@XZ
403401
??0handler@_V1@sycl@@AEAA@V?$shared_ptr@Vgraph_impl@detail@experimental@oneapi@ext@_V1@sycl@@@std@@@Z
404402
??0handler@_V1@sycl@@AEAA@V?$shared_ptr@Vqueue_impl@detail@_V1@sycl@@@std@@00_N@Z
405-
??0handler@_V1@sycl@@AEAA@V?$shared_ptr@Vqueue_impl@detail@_V1@sycl@@@std@@PEAVqueue_impl@detail@12@1_N@Z
406403
??0handler@_V1@sycl@@AEAA@V?$shared_ptr@Vqueue_impl@detail@_V1@sycl@@@std@@_N@Z
404+
??0handler@_V1@sycl@@AEAA@V?$shared_ptr@Vqueue_impl@detail@_V1@sycl@@@std@@PEAVqueue_impl@detail@12@1_N@Z
407405
??0image_mem@experimental@oneapi@ext@_V1@sycl@@QEAA@$$QEAV012345@@Z
408406
??0image_mem@experimental@oneapi@ext@_V1@sycl@@QEAA@AEBUimage_descriptor@12345@AEBVdevice@45@AEBVcontext@45@@Z
409407
??0image_mem@experimental@oneapi@ext@_V1@sycl@@QEAA@AEBUimage_descriptor@12345@AEBVqueue@45@@Z
@@ -508,10 +506,14 @@
508506
??1exception@_V1@sycl@@UEAA@XZ
509507
??1exception_list@_V1@sycl@@QEAA@XZ
510508
??1executable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@QEAA@XZ
509+
??0dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@QEAA@V?$command_graph@$0A@@23456@@Z
510+
?updateWorkGroupMem@dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@IEAAX_K@Z
511511
??1filter_selector@ONEAPI@_V1@sycl@@UEAA@XZ
512512
??1filter_selector@oneapi@ext@_V1@sycl@@UEAA@XZ
513513
??1fusion_wrapper@experimental@codeplay@ext@_V1@sycl@@QEAA@XZ
514514
??1gpu_selector@_V1@sycl@@UEAA@XZ
515+
??0dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@QEAA@XZ
516+
?setArgHelper@handler@_V1@sycl@@AEAAXHAEAVdynamic_work_group_memory_base@detail@experimental@oneapi@ext@23@@Z
515517
??1handler@_V1@sycl@@AEAA@XZ
516518
??1image_mem@experimental@oneapi@ext@_V1@sycl@@QEAA@XZ
517519
??1image_mem_impl@detail@experimental@oneapi@ext@_V1@sycl@@QEAA@XZ
@@ -4345,7 +4347,6 @@
43454347
?select_device@filter_selector@oneapi@ext@_V1@sycl@@UEBA?AVdevice@45@XZ
43464348
?setArgHelper@handler@_V1@sycl@@AEAAXH$$QEAVraw_kernel_arg@experimental@oneapi@ext@23@@Z
43474349
?setArgHelper@handler@_V1@sycl@@AEAAXH$$QEAVsampler@23@@Z
4348-
?setArgHelper@handler@_V1@sycl@@AEAAXHAEAVdynamic_work_group_memory_base@detail@experimental@oneapi@ext@23@@Z
43494350
?setArgHelper@handler@_V1@sycl@@AEAAXHAEAVwork_group_memory_impl@detail@23@@Z
43504351
?setArgsHelper@handler@_V1@sycl@@AEAAXH@Z
43514352
?setArgsToAssociatedAccessors@handler@_V1@sycl@@AEAAXXZ
@@ -4421,7 +4422,6 @@
44214422
?updateAccessor@dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@IEAAXPEBVAccessorBaseHost@267@@Z
44224423
?updateValue@dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@IEAAXPEBVraw_kernel_arg@34567@_K@Z
44234424
?updateValue@dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@IEAAXPEBX_K@Z
4424-
?updateWorkGroupMem@dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@IEAAX_K@Z
44254425
?use_kernel_bundle@handler@_V1@sycl@@QEAAXAEBV?$kernel_bundle@$01@23@@Z
44264426
?verifyDeviceHasProgressGuarantee@handler@_V1@sycl@@AEAAXW4forward_progress_guarantee@experimental@oneapi@ext@23@W4execution_scope@56723@1@Z
44274427
?verifyReductionProps@detail@_V1@sycl@@YAXAEBVproperty_list@23@@Z

0 commit comments

Comments
 (0)