Skip to content

Commit 4ed6839

Browse files
jbrodmangmlueck
andauthored
[SYCL][DOC] Represent cache level by enum instead of int (#11366)
Update the extension to represent cache levels as an enum instead of an integer. --------- Signed-off-by: James Brodman <[email protected]> Co-authored-by: Greg Lueck <[email protected]>
1 parent 07a3c7d commit 4ed6839

File tree

1 file changed

+22
-15
lines changed

1 file changed

+22
-15
lines changed

sycl/doc/extensions/proposed/sycl_ext_intel_cache_controls.asciidoc

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,13 @@ Below is a list of new compile-time constant properties supported with
9898
```c++
9999
namespace sycl::ext::intel::experimental {
100100

101+
enum class cache_level : /*unspecified*/ {
102+
L1,
103+
L2,
104+
L3,
105+
L4,
106+
};
107+
101108
enum class cache_control_read_type : /* unspecified */ {
102109
cached,
103110
uncached,
@@ -114,19 +121,19 @@ enum class cache_control_write_type : /* unspecified */ {
114121
};
115122

116123
struct cache_control_read_key {
117-
template<cache_control_read_type C, int L>
118-
using value_t = property_value<cache_control_read, C, std::integral_constant<int, L>>;
124+
template<cache_control_read_type C, cache_level L>
125+
using value_t = property_value<cache_control_read, C, std::integral_constant<cache_level, L>>;
119126
};
120127

121128
struct cache_control_write_key {
122-
template<cache_control_write_type C, int L>
123-
using value_t = property_value<cache_control_write, C, std::integral_constant<int, L>>;
129+
template<cache_control_write_type C, cache_level L>
130+
using value_t = property_value<cache_control_write, C, std::integral_constant<cache_level, L>>;
124131
};
125132

126-
template<cache_control_read_type C, int L>
133+
template<cache_control_read_type C, cache_level L>
127134
inline constexpr cache_control_read_key::value_t<C, L> cache_control_read;
128135

129-
template<cache_control_write_type C, int L>
136+
template<cache_control_write_type C, cache_level L>
130137
inline constexpr cache_control_write_key::value_t<C, L> cache_control_write;
131138

132139
template<>
@@ -143,32 +150,32 @@ template<typename T, typename PropertyListT>
143150
struct is_property_key_of<
144151
cache_control_write_key, annotated_ptr<T, PropertyListT>> : std::true_type {};
145152

146-
template<int L>
153+
template<cache_level L>
147154
inline constexpr cache_control_read_key::value_t<cache_control_read_type::cached, L>
148155
cache_control_read_cached;
149156

150-
template<int L>
157+
template<cache_level L>
151158
inline constexpr cache_control_read_key::value_t<cache_control_read_type::uncached, L> cache_control_read_uncached;
152159

153-
template<int L>
160+
template<cache_level L>
154161
inline constexpr cache_control_read_key::value_t<cache_control_read_type::streaming, L> cache_control_read_streaming;
155162

156-
template<int L>
163+
template<cache_level L>
157164
inline constexpr cache_control_read_key::value_t<cache_control_read_type::invalidate_after_read, L> cache_control_invalidate_after_read;
158165

159-
template<int L>
166+
template<cache_level L>
160167
inline constexpr cache_control_read_key::value_t<cache_control_read_type::const_cached, L> cache_control_read_const_cached;
161168

162-
template<int L>
169+
template<cache_level L>
163170
inline constexpr cache_control_write_key::value_t<cache_control_write_type::uncached, L> cache_control_write_uncached;
164171

165-
template<int L>
172+
template<cache_level L>
166173
inline constexpr cache_control_write_key::value_t<cache_control_write_type::write_streaming, L> cache_control_write_streaming;
167174

168-
template<int L>
175+
template<cache_level L>
169176
inline constexpr cache_control_write_key::value_t<cache_control_write_type::write_through, L> cache_control_write_through;
170177

171-
template<int L>
178+
template<cache_level L>
172179
inline constexpr cache_control_write_key::value_t<cache_control_write_type::write_back, L> cache_control_write_back;
173180

174181
} // namespace sycl::ext::intel::experimental

0 commit comments

Comments
 (0)