Skip to content

Commit b5705a3

Browse files
authored
[SYCL] Remove <iostream> from header and source files (#6469)
-Removed <iostream> headers from header and source files to best conform to LLVM Coding Standards : https://llvm.org/docs/CodingStandards.html#include-iostream-is-forbidden . -Substituted the removed headers with a proxy header which uses external linkage to resolve symbols in <iostream>
1 parent 7cb8726 commit b5705a3

19 files changed

+45
-16
lines changed

sycl/include/sycl/backend_types.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
#pragma once
1010

1111
#include <sycl/detail/defines.hpp>
12+
#include <sycl/detail/iostream_proxy.hpp>
1213

1314
#include <fstream>
14-
#include <iostream>
1515
#include <istream>
1616
#include <string>
1717

sycl/include/sycl/detail/common.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ static inline std::string codeToString(pi_int32 code) {
116116
"Native API returns: "
117117

118118
#ifndef __SYCL_SUPPRESS_PI_ERROR_REPORT
119-
#include <iostream>
119+
#include <sycl/detail/iostream_proxy.hpp>
120120
// TODO: rename all names with direct use of OCL/OPENCL to be backend agnostic.
121121
#define __SYCL_REPORT_PI_ERR_TO_STREAM(expr) \
122122
{ \

sycl/include/sycl/detail/device_filter.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010

1111
#include <sycl/backend_types.hpp>
1212
#include <sycl/detail/defines.hpp>
13+
#include <sycl/detail/iostream_proxy.hpp>
1314
#include <sycl/info/info_desc.hpp>
1415

15-
#include <iostream>
1616
#include <string>
1717

1818
__SYCL_INLINE_NAMESPACE(cl) {

sycl/include/sycl/detail/image_accessor_util.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@
1515
#include <sycl/builtins.hpp>
1616
#include <sycl/detail/export.hpp>
1717
#include <sycl/detail/generic_type_traits.hpp>
18+
#include <sycl/detail/iostream_proxy.hpp>
1819
#include <sycl/image.hpp>
1920
#include <sycl/sampler.hpp>
2021
#include <sycl/types.hpp>
2122

2223
#include <cmath>
23-
#include <iostream>
2424

2525
__SYCL_INLINE_NAMESPACE(cl) {
2626
namespace sycl {
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#pragma once
2+
#include <istream>
3+
#include <ostream>
4+
5+
namespace std {
6+
extern istream cin; /// Linked to standard input
7+
extern ostream cout; /// Linked to standard output
8+
extern ostream cerr; /// Linked to standard error (unbuffered)
9+
extern ostream clog; /// Linked to standard error (buffered)
10+
} // namespace std

sycl/include/sycl/ext/intel/esimd/simd.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
#include <sycl/ext/oneapi/experimental/invoke_simd.hpp>
2323

2424
#ifndef __SYCL_DEVICE_ONLY__
25-
#include <iostream>
25+
#include <sycl/detail/iostream_proxy.hpp>
2626
#endif // __SYCL_DEVICE_ONLY__
2727

2828
__SYCL_INLINE_NAMESPACE(cl) {

sycl/include/sycl/half_type.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010

1111
#include <sycl/detail/defines.hpp>
1212
#include <sycl/detail/export.hpp>
13+
#include <sycl/detail/iostream_proxy.hpp>
1314
#include <sycl/detail/type_traits.hpp>
1415

1516
#include <functional>
16-
#include <iostream>
1717
#include <limits>
1818

1919
#if !__has_builtin(__builtin_expect)

sycl/plugins/esimd_emulator/pi_esimd_emulator.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
#include <cstdio>
3636
#include <cstring>
3737
#include <functional>
38+
#include <iostream>
3839
#include <map>
3940
#include <memory>
4041
#include <string>

sycl/plugins/esimd_emulator/pi_esimd_emulator.hpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@
1414

1515
#pragma once
1616

17+
#include <sycl/detail/iostream_proxy.hpp>
18+
#include <sycl/detail/pi.h>
19+
1720
#include <atomic>
1821
#include <cassert>
19-
#include <iostream>
2022
#include <mutex>
21-
#include <sycl/detail/pi.h>
2223
#include <unordered_map>
2324

2425
#include <malloc.h>

sycl/plugins/level_zero/pi_level_zero.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
#include <cassert>
3030
#include <cstring>
3131
#include <functional>
32-
#include <iostream>
3332
#include <list>
3433
#include <map>
3534
#include <memory>
@@ -43,6 +42,7 @@
4342

4443
#include <level_zero/ze_api.h>
4544
#include <level_zero/zes_api.h>
45+
#include <sycl/detail/iostream_proxy.hpp>
4646

4747
#include "usm_allocator.hpp"
4848

sycl/plugins/level_zero/tracing.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
#include <level_zero/ze_api.h>
1313
#include <xpti/xpti_trace_framework.h>
1414

15-
#include <iostream>
15+
#include <sycl/detail/iostream_proxy.hpp>
1616

1717
constexpr auto ZE_CALL_STREAM_NAME = "sycl.experimental.level_zero.call";
1818
constexpr auto ZE_DEBUG_STREAM_NAME = "sycl.experimental.level_zero.debug";

sycl/plugins/level_zero/usm_allocator.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
#include <cassert>
1313
#include <cctype>
1414
#include <iomanip>
15-
#include <iostream>
1615
#include <list>
1716
#include <memory>
1817
#include <mutex>
@@ -23,7 +22,7 @@
2322
#include <vector>
2423

2524
#include "usm_allocator.hpp"
26-
#include <iostream>
25+
#include <sycl/detail/iostream_proxy.hpp>
2726
#include <sycl/detail/spinlock.hpp>
2827

2928
// USM allocations are a minimum of 4KB/64KB/2MB even when a smaller size is

sycl/plugins/opencl/pi_opencl.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@
1818

1919
#include <pi_opencl.hpp>
2020
#include <sycl/detail/cl.h>
21+
#include <sycl/detail/iostream_proxy.hpp>
2122
#include <sycl/detail/pi.h>
2223

2324
#include <algorithm>
2425
#include <cassert>
2526
#include <cstring>
26-
#include <iostream>
2727
#include <limits>
2828
#include <map>
2929
#include <sstream>

sycl/source/detail/config.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@
99
#include <detail/config.hpp>
1010
#include <sycl/detail/common.hpp>
1111
#include <sycl/detail/defines_elementary.hpp>
12+
#include <sycl/detail/iostream_proxy.hpp>
1213
#include <sycl/detail/os_util.hpp>
1314

1415
#include <cstring>
1516
#include <fstream>
16-
#include <iostream>
1717
#include <limits>
1818

1919
__SYCL_INLINE_NAMESPACE(cl) {

sycl/source/detail/spec_constant_impl.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@
99
#include <detail/spec_constant_impl.hpp>
1010

1111
#include <sycl/detail/defines.hpp>
12+
#include <sycl/detail/iostream_proxy.hpp>
1213
#include <sycl/detail/pi.h>
1314
#include <sycl/detail/util.hpp>
1415
#include <sycl/exception.hpp>
1516

1617
#include <cstring>
17-
#include <iostream>
1818

1919
__SYCL_INLINE_NAMESPACE(cl) {
2020
namespace sycl {

sycl/source/detail/spec_constant_impl.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@
99
#pragma once
1010

1111
#include <sycl/detail/defines.hpp>
12+
#include <sycl/detail/iostream_proxy.hpp>
1213
#include <sycl/detail/util.hpp>
1314
#include <sycl/stl.hpp>
1415

15-
#include <iostream>
1616
#include <map>
1717
#include <vector>
1818

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// RUN: %clangxx -Wno-unused-command-line-argument -Werror -fsycl %s -c
2+
3+
#include <iostream>
4+
#include <sycl/sycl.hpp>
5+
void foo() { std::cout << 42; }
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// RUN: %clangxx -Wno-unused-command-line-argument -Werror -fsycl %s -c
2+
3+
// clang-format off
4+
#include <sycl/sycl.hpp>
5+
#include <iostream>
6+
// clang-format on
7+
void foo() { std::cout << 42; }

sycl/test/basic_tests/no_iostream.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// RUN: %clangxx -fsycl %s -S -emit-llvm -o- | FileCheck %s
2+
// CHECK-NOT: {{^@}}
3+
//
4+
// Tests if <sycl/sycl.hpp> headers include any <iostream> headers
5+
6+
#include <sycl/sycl.hpp>

0 commit comments

Comments
 (0)