Skip to content

Commit 1472ee8

Browse files
Revert "Force inline with GCC"
This reverts commit 8ec5d05.
1 parent 5587710 commit 1472ee8

1 file changed

Lines changed: 31 additions & 31 deletions

File tree

GPU/Common/MemLayout.h

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -21,56 +21,56 @@ template <class SF>
2121
struct RandomAccessAt {
2222
MemLayout::size_t i;
2323
template <class... Args>
24-
[[gnu::always_inline]] constexpr SF operator()(Args& ...args) const { return {args[i]...}; }
24+
constexpr SF operator()(Args& ...args) const { return {args[i]...}; }
2525
template <class... Args>
26-
[[gnu::always_inline]] constexpr SF operator()(const Args& ...args) const { return {args[i]...}; }
26+
constexpr SF operator()(const Args& ...args) const { return {args[i]...}; }
2727
};
2828

2929
template <class SF>
3030
struct GetPointer {
3131
template <class... Args>
32-
[[gnu::always_inline]] constexpr SF operator()(Args& ...args) const { return {&args...}; }
32+
constexpr SF operator()(Args& ...args) const { return {&args...}; }
3333
template <class... Args>
34-
[[gnu::always_inline]] constexpr SF operator()(const Args& ...args) const { return {&args...}; }
34+
constexpr SF operator()(const Args& ...args) const { return {&args...}; }
3535
};
3636

3737
template <class SF>
3838
struct AggregateConstructor {
3939
template <class... Args>
40-
[[gnu::always_inline]] constexpr SF operator()(Args& ...args) const { return {args...}; }
40+
constexpr SF operator()(Args& ...args) const { return {args...}; }
4141
template <class... Args>
42-
[[gnu::always_inline]] constexpr SF operator()(const Args& ...args) const { return {args...}; }
42+
constexpr SF operator()(const Args& ...args) const { return {args...}; }
4343
};
4444

4545
struct FirstMember {
4646
template <class T, class... Args>
47-
[[gnu::always_inline]] constexpr T& operator()(T& t, Args& ...args) const { return t; }
47+
constexpr T& operator()(T& t, Args& ...args) const { return t; }
4848
template <class T, class... Args>
49-
[[gnu::always_inline]] constexpr const T& operator()(const T& t, const Args& ...args) const { return t; }
49+
constexpr const T& operator()(const T& t, const Args& ...args) const { return t; }
5050
};
5151

5252
template <class SF>
5353
struct PreIncrement {
5454
template <class... Args>
55-
[[gnu::always_inline]] constexpr SF operator()(Args& ...args) const { return {++args...}; }
55+
constexpr SF operator()(Args& ...args) const { return {++args...}; }
5656
};
5757

5858
template <class SF>
5959
struct PreDecrement {
6060
template <class... Args>
61-
[[gnu::always_inline]] constexpr SF operator()(Args& ...args) const { return {--args...}; }
61+
constexpr SF operator()(Args& ...args) const { return {--args...}; }
6262
};
6363

6464
template <class SF>
6565
struct Advance {
6666
ptrdiff_t i;
6767
template <class... Args>
68-
[[gnu::always_inline]] constexpr SF operator()(const Args& ...args) const { return {(args + i)...}; }
68+
constexpr SF operator()(const Args& ...args) const { return {(args + i)...}; }
6969
};
7070

7171
struct CopyAssignment {
7272
template <class Left, class Right>
73-
[[gnu::always_inline]] constexpr Left& operator()(Left& left, const Right& right) const { return left = right; }
73+
constexpr Left& operator()(Left& left, const Right& right) const { return left = right; }
7474
};
7575

7676
template <
@@ -87,11 +87,11 @@ struct wrapper : public S<F> {
8787
template <template <class> class F_other>
8888
constexpr wrapper(const S<F_other>& other) : Base{other.apply(AggregateConstructor<Base>{})} {}
8989

90-
[[gnu::always_inline]] constexpr wrapper<S, reference> operator[] (size_t i) { return Base::apply(RandomAccessAt<S<reference>>{i}); }
91-
[[gnu::always_inline]] constexpr wrapper<S, const_reference> operator[] (size_t i) const { return Base::apply(RandomAccessAt<S<const_reference>>{i}); }
90+
constexpr wrapper<S, reference> operator[] (size_t i) { return Base::apply(RandomAccessAt<S<reference>>{i}); }
91+
constexpr wrapper<S, const_reference> operator[] (size_t i) const { return Base::apply(RandomAccessAt<S<const_reference>>{i}); }
9292

93-
[[gnu::always_inline]] constexpr wrapper<S, reference> operator*() { return operator[](0); }
94-
[[gnu::always_inline]] constexpr wrapper<S, const_reference> operator*(ptrdiff_t) const { return operator[](0); }
93+
constexpr wrapper<S, reference> operator*() { return operator[](0); }
94+
constexpr wrapper<S, const_reference> operator*(ptrdiff_t) const { return operator[](0); }
9595
};
9696

9797
template <template <template <class> class> class S>
@@ -226,13 +226,13 @@ struct wrapper<S, pointer> : public S<pointer> {
226226
constexpr wrapper() = default;
227227
constexpr wrapper(Base b) : Base{static_cast<Base&&>(b)} {}
228228

229-
[[gnu::always_inline]] constexpr wrapper<S, reference> operator[] (size_t i) { return Base::apply(RandomAccessAt<S<reference>>{i}); }
230-
[[gnu::always_inline]] constexpr const wrapper<S, const_reference> operator[] (size_t i) const { return Base::apply(RandomAccessAt<S<const_reference>>{i}); }
229+
constexpr wrapper<S, reference> operator[] (size_t i) { return Base::apply(RandomAccessAt<S<reference>>{i}); }
230+
constexpr const wrapper<S, const_reference> operator[] (size_t i) const { return Base::apply(RandomAccessAt<S<const_reference>>{i}); }
231231

232-
[[gnu::always_inline]] constexpr wrapper<S, reference> operator*() { return operator[](0); }
233-
[[gnu::always_inline]] constexpr wrapper<S, const_reference> operator*() const { return operator[](0); }
234-
[[gnu::always_inline]] constexpr wrapper<S, reference> operator->() { return operator[](0); }
235-
[[gnu::always_inline]] constexpr wrapper<S, const_reference> operator->() const { return operator[](0); }
232+
constexpr wrapper<S, reference> operator*() { return operator[](0); }
233+
constexpr wrapper<S, const_reference> operator*() const { return operator[](0); }
234+
constexpr wrapper<S, reference> operator->() { return operator[](0); }
235+
constexpr wrapper<S, const_reference> operator->() const { return operator[](0); }
236236

237237
constexpr bool operator==(const wrapper& other) const { return Base::apply(FirstMember{}) == other.apply(FirstMember{}); }
238238
constexpr bool operator!=(const wrapper& other) const { return !this->operator==(other); }
@@ -259,9 +259,9 @@ struct wrapper<S, const_pointer> : public S<const_pointer> {
259259
constexpr wrapper(Base b) : Base{static_cast<Base&&>(b)} {}
260260
constexpr wrapper(const S<pointer>& other) : Base(other.apply(AggregateConstructor<Base>{})) {}
261261

262-
[[gnu::always_inline]] constexpr wrapper<S, const_reference> operator[] (size_t i) const { return Base::apply(RandomAccessAt<S<const_reference>>{i}); }
263-
[[gnu::always_inline]] constexpr wrapper<S, const_reference> operator*() const { return operator[](0); }
264-
[[gnu::always_inline]] constexpr wrapper<S, const_reference> operator->() const { return operator[](0); }
262+
constexpr wrapper<S, const_reference> operator[] (size_t i) const { return Base::apply(RandomAccessAt<S<const_reference>>{i}); }
263+
constexpr wrapper<S, const_reference> operator*() const { return operator[](0); }
264+
constexpr wrapper<S, const_reference> operator->() const { return operator[](0); }
265265

266266
constexpr bool operator==(const wrapper& other) const { return Base::apply(FirstMember{}) == other.apply(FirstMember{}); }
267267
constexpr bool operator!=(const wrapper& other) const { return !this->operator==(other); }
@@ -292,20 +292,20 @@ struct interface<S, F, Flag::soa> { using type = wrapper<S, F>; };
292292

293293
#define MEMLAYOUT_APPLY_UNARY(...)\
294294
template <class Function>\
295-
[[gnu::always_inline]] constexpr auto apply(Function&& f) { return f(__VA_ARGS__); }\
295+
constexpr auto apply(Function&& f) { return f(__VA_ARGS__); }\
296296
template <class Function>\
297-
[[gnu::always_inline]] constexpr auto apply(Function&& f) const { return f(__VA_ARGS__); }\
297+
constexpr auto apply(Function&& f) const { return f(__VA_ARGS__); }\
298298

299299
#define MEMLAYOUT_EXPAND(m) f(m, other.m)
300300

301301
#define MEMLAYOUT_APPLY_BINARY(STRUCT_NAME, ...)\
302302
template <template <class> class F_other, class Function>\
303-
[[gnu::always_inline]] constexpr STRUCT_NAME apply(STRUCT_NAME<F_other>& other, Function&& f) { return {__VA_ARGS__}; }\
303+
constexpr STRUCT_NAME apply(STRUCT_NAME<F_other>& other, Function&& f) { return {__VA_ARGS__}; }\
304304
template <template <class> class F_other, class Function>\
305-
[[gnu::always_inline]] constexpr STRUCT_NAME apply(STRUCT_NAME<F_other>& other, Function&& f) const { return {__VA_ARGS__}; }\
305+
constexpr STRUCT_NAME apply(STRUCT_NAME<F_other>& other, Function&& f) const { return {__VA_ARGS__}; }\
306306
template <template <class> class F_other, class Function>\
307-
[[gnu::always_inline]] constexpr STRUCT_NAME apply(const STRUCT_NAME<F_other>& other, Function&& f) { return {__VA_ARGS__}; }\
307+
constexpr STRUCT_NAME apply(const STRUCT_NAME<F_other>& other, Function&& f) { return {__VA_ARGS__}; }\
308308
template <template <class> class F_other, class Function>\
309-
[[gnu::always_inline]] constexpr STRUCT_NAME apply(const STRUCT_NAME<F_other>& other, Function&& f) const { return {__VA_ARGS__}; }\
309+
constexpr STRUCT_NAME apply(const STRUCT_NAME<F_other>& other, Function&& f) const { return {__VA_ARGS__}; }\
310310

311311
#endif // MEMLAYOUT_H

0 commit comments

Comments
 (0)