Skip to content

Commit b4e0450

Browse files
authored
[SYCL][Graph] Export missing graph node symbols (#13744)
The symbols for templated methods `node::update_range()` and `node::update_nd_range()` were not having their symbols exported on Windows DLLs. Leading to link errors when running clang in the Graph E2E tests `Update/update_nd_range.cpp` and `Update/update_range.cpp` Fixed by adding `__SYCL_EXPORT` to the templated specializations are recommended by the [__SYCL_EXPORT Macro documentation](https://intel.github.io/llvm-docs/developer/ABIPolicyGuide.html#sycl-export-macro) Also removed duplicate forward declaration of `command_graph` from `graph.hpp`. It is already forward declared earlier on in the file on line 43.
1 parent b11a19b commit b4e0450

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed

sycl/include/sycl/ext/oneapi/experimental/graph.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,8 +206,6 @@ class depends_on_all_leaves : public ::sycl::detail::DataLessProperty<
206206
} // namespace node
207207
} // namespace property
208208

209-
template <graph_state State> class command_graph;
210-
211209
namespace detail {
212210
// Templateless modifiable command-graph base class.
213211
class __SYCL_EXPORT modifiable_command_graph {

sycl/source/detail/graph_impl.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1699,22 +1699,22 @@ node node::get_node_from_event(event nodeEvent) {
16991699
GraphImpl->getNodeForEvent(EventImpl));
17001700
}
17011701

1702-
template <> void node::update_nd_range<1>(nd_range<1> NDRange) {
1702+
template <> __SYCL_EXPORT void node::update_nd_range<1>(nd_range<1> NDRange) {
17031703
impl->updateNDRange(NDRange);
17041704
}
1705-
template <> void node::update_nd_range<2>(nd_range<2> NDRange) {
1705+
template <> __SYCL_EXPORT void node::update_nd_range<2>(nd_range<2> NDRange) {
17061706
impl->updateNDRange(NDRange);
17071707
}
1708-
template <> void node::update_nd_range<3>(nd_range<3> NDRange) {
1708+
template <> __SYCL_EXPORT void node::update_nd_range<3>(nd_range<3> NDRange) {
17091709
impl->updateNDRange(NDRange);
17101710
}
1711-
template <> void node::update_range<1>(range<1> Range) {
1711+
template <> __SYCL_EXPORT void node::update_range<1>(range<1> Range) {
17121712
impl->updateRange(Range);
17131713
}
1714-
template <> void node::update_range<2>(range<2> Range) {
1714+
template <> __SYCL_EXPORT void node::update_range<2>(range<2> Range) {
17151715
impl->updateRange(Range);
17161716
}
1717-
template <> void node::update_range<3>(range<3> Range) {
1717+
template <> __SYCL_EXPORT void node::update_range<3>(range<3> Range) {
17181718
impl->updateRange(Range);
17191719
}
17201720
} // namespace experimental

sycl/test/abi/sycl_symbols_windows.dump

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4341,6 +4341,12 @@
43414341
?get_mip_level_mem_handle@image_mem@experimental@oneapi@ext@_V1@sycl@@QEBA?AUimage_mem_handle@23456@I@Z
43424342
?get_name@kernel_id@_V1@sycl@@QEBAPEBDXZ
43434343
?get_node_from_event@node@experimental@oneapi@ext@_V1@sycl@@SA?AV123456@Vevent@56@@Z
4344+
??$update_nd_range@$00@node@experimental@oneapi@ext@_V1@sycl@@QEAAXV?$nd_range@$00@45@@Z
4345+
??$update_nd_range@$01@node@experimental@oneapi@ext@_V1@sycl@@QEAAXV?$nd_range@$01@45@@Z
4346+
??$update_nd_range@$02@node@experimental@oneapi@ext@_V1@sycl@@QEAAXV?$nd_range@$02@45@@Z
4347+
??$update_range@$00@node@experimental@oneapi@ext@_V1@sycl@@QEAAXV?$range@$00@45@@Z
4348+
??$update_range@$01@node@experimental@oneapi@ext@_V1@sycl@@QEAAXV?$range@$01@45@@Z
4349+
??$update_range@$02@node@experimental@oneapi@ext@_V1@sycl@@QEAAXV?$range@$02@45@@Z
43444350
?get_nodes@modifiable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@QEBA?AV?$vector@Vnode@experimental@oneapi@ext@_V1@sycl@@V?$allocator@Vnode@experimental@oneapi@ext@_V1@sycl@@@std@@@std@@XZ
43454351
?get_num_channels@image_mem@experimental@oneapi@ext@_V1@sycl@@QEBAIXZ
43464352
?get_pipe_name@pipe_base@experimental@intel@ext@_V1@sycl@@KA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBX@Z

0 commit comments

Comments
 (0)