Commit 5914f8f
authored
Fix warning when building kernel libraries (#15405)
Getting warnings like the following:
```
/home/larryliu/executorch/kernels/portable/cpu/op_maximum.cpp: In lambda function:
/home/larryliu/executorch/kernels/portable/cpu/op_maximum.cpp:52:9: note: the ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
52 | [](const auto val_a, const auto val_b) {
| ^
/home/larryliu/executorch/../executorch/runtime/core/exec_aten/util/scalar_type_util.h:919:7: note: in definition of macro 'ET_INTERNAL_SWITCH'
919 | __VA_ARGS__ \
| ^~~~~~~~~~~
/home/larryliu/executorch/../executorch/runtime/core/exec_aten/util/scalar_type_util.h:931:3: note: in expansion of macro 'ET_INTERNAL_SWITCH_CASE'
931 | ET_INTERNAL_SWITCH_CASE( \
| ^~~~~~~~~~~~~~~~~~~~~~~
/home/larryliu/executorch/../executorch/runtime/core/exec_aten/util/scalar_type_util.h:957:3: note: in expansion of macro 'ET_INTERNAL_SWITCH_CASE_INT_TYPES'
957 | ET_INTERNAL_SWITCH_CASE_INT_TYPES(CTYPE_ALIAS, __VA_ARGS__) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/larryliu/executorch/../executorch/runtime/core/exec_aten/util/scalar_type_util.h:1008:3: note: in expansion of macro 'ET_INTERNAL_SWITCH_CASE_REAL_TYPES'
1008 | ET_INTERNAL_SWITCH_CASE_REAL_TYPES(CTYPE_ALIAS, __VA_ARGS__) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/larryliu/executorch/../executorch/runtime/core/exec_aten/util/scalar_type_util.h:1136:7: note: in expansion of macro 'ET_INTERNAL_SWITCH_CASE_REAL_TYPES_AND'
1136 | ET_INTERNAL_SWITCH_CASE_REAL_TYPES_AND( \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/larryliu/executorch/../executorch/runtime/core/exec_aten/util/scalar_type_util.h:1172:3: note: in expansion of macro 'ET_SWITCH_REAL_TYPES_AND'
1172 | ET_SWITCH_REAL_TYPES_AND(Bool, TYPE, CONTEXT, NAME, CTYPE_ALIAS, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~~~~~~~~
/home/larryliu/executorch/kernels/portable/cpu/op_maximum.cpp:47:3: note: in expansion of macro 'ET_SWITCH_REALB_TYPES'
47 | ET_SWITCH_REALB_TYPES(compute_type, ctx, op_name, CTYPE_COMPUTE, [&]() {
| ^~~~~~~~~~~~~~~~~~~~~
```
Fixing them in this PR
## Overview
----------
This branch addresses GCC compiler warnings related to 32-byte alignment
(ABI) when passing SIMD vector types to lambda functions in both
portable and optimized kernel implementations.
**Key Changes:**
* **CMakeLists.txt**: Added `-Wno-psabi` compiler flag to suppress ABI
warnings for GNU compiler: `$<$<CXX_COMPILER_ID:GNU>:-Wno-psabi>`
* **Removed explicit template parameter `<CTYPE>` and changed lambda
parameters from reference `&` to value (pass by value)** from
`at::vec::map()` and `at::vec::map3()` calls
```
// Before:
at::vec::map<CTYPE>([alpha_val, b_val](Vec& x) { return x + Vec(alpha_val * b_val); }, ...);
// After:
at::vec::map([alpha_val, b_val](Vec x) { return x + Vec(alpha_val * b_val); }, ...);
```
* **Changed lambda parameters from value to reference `&`** for lambdas
being passed to `apply_bitensor_elementwise_fn()` and similar functions.
```
// Before:
[val_alpha](const auto val_a, const auto val_b) {
return val_a + val_alpha * val_b;
}
// After:
[val_alpha](const auto& val_a, const auto& val_b) {
return val_a + val_alpha * val_b;
}
```
## Problem Solved
--------------
**Before:** GCC compiler produced numerous warnings like:
`note: the ABI for passing parameters with 32-byte alignment has changed
in GCC 4.6`
These warnings appeared when SIMD vector types (e.g., `__m256` from AVX)
were passed to lambda functions, cluttering build output and making it
difficult to spot real issues.
**After:** Clean builds with no ABI warnings, while maintaining
identical functionality and performance characteristics.1 parent 216f69d commit 5914f8f
File tree
18 files changed
+42
-20
lines changed- kernels
- optimized
- cpu
- portable/cpu
18 files changed
+42
-20
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| 27 | + | |
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
| 44 | + | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
58 | | - | |
| 58 | + | |
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
83 | | - | |
| 83 | + | |
84 | 84 | | |
85 | 85 | | |
86 | 86 | | |
| |||
136 | 136 | | |
137 | 137 | | |
138 | 138 | | |
139 | | - | |
| 139 | + | |
140 | 140 | | |
141 | 141 | | |
142 | 142 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
95 | | - | |
| 95 | + | |
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
62 | | - | |
| 62 | + | |
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
142 | | - | |
| 142 | + | |
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
| 65 | + | |
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
| |||
195 | 195 | | |
196 | 196 | | |
197 | 197 | | |
198 | | - | |
| 198 | + | |
199 | 199 | | |
200 | 200 | | |
201 | 201 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
138 | 138 | | |
139 | 139 | | |
140 | 140 | | |
141 | | - | |
| 141 | + | |
142 | 142 | | |
143 | 143 | | |
144 | 144 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
18 | 29 | | |
19 | 30 | | |
20 | 31 | | |
| |||
0 commit comments