Skip to content

Commit 56f3a55

Browse files
pytorchbotGithub Executorch
andauthored
Add -Wno-global-constructors -Wno-shadow to fft_r2c op target (#8452)
Add -Wno-global-constructors -Wno-shadow to op targets Need to suppress these warnings to unbreak builds; looks like this is what PyTorch core does. Differential Revision: [D69470437](https://our.internmc.facebook.com/intern/diff/D69470437/) ghstack-source-id: 266120755 Pull Request resolved: #8427 Co-authored-by: Github Executorch <[email protected]>
1 parent b607800 commit 56f3a55

File tree

3 files changed

+17
-7
lines changed

3 files changed

+17
-7
lines changed

kernels/optimized/cpu/targets.bzl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ _OPTIMIZED_ATEN_OPS = (
2727
op_target(name = "op_exp"),
2828
op_target(
2929
name = "op_fft_r2c",
30+
compiler_flags = [] if runtime.is_oss else [
31+
"-Wno-global-constructors",
32+
"-Wno-shadow",
33+
],
3034
deps = [] if runtime.is_oss else ["fbsource//third-party/pocket_fft:pocketfft"],
3135
),
3236
op_target(name = "op_sigmoid"),

kernels/optimized/op_registration_util.bzl

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ load(
1010
"get_compiler_optimization_flags",
1111
)
1212

13-
def op_target(name, deps = []):
13+
def op_target(name, deps = [], compiler_flags = []):
1414
"""Registers an optimized implementation for an operator overload group.
1515
1616
An operator overload group is a set of operator overloads with a common
@@ -37,11 +37,13 @@ def op_target(name, deps = []):
3737
dependencies manageable. If two op targets would like to share
3838
code, define a separate runtime.cxx_library that they both depend
3939
on.
40+
compiler_flags: Optional compiler flags to add to the cxx_library().
4041
"""
4142

4243
# Note that this doesn't actually define the target, but helps register
4344
# it in a table that's used to define the target.
4445
return {
46+
"compiler_flags": compiler_flags,
4547
"deps": deps,
4648
"name": name,
4749
}
@@ -64,7 +66,7 @@ def _enforce_deps(deps, name):
6466
dep,
6567
))
6668

67-
def define_op_library(name, deps):
69+
def define_op_library(name, compiler_flags, deps):
6870
"""Defines a cxx_library target for the named operator overload group.
6971
7072
Args:
@@ -97,7 +99,7 @@ def define_op_library(name, deps):
9799
# pragma unroll fails with -Os, don't need to warn us and
98100
# fail Werror builds; see https://godbolt.org/z/zvf85vTsr
99101
"-Wno-pass-failed",
100-
] + get_compiler_optimization_flags(),
102+
] + compiler_flags + get_compiler_optimization_flags(),
101103
deps = [
102104
"//executorch/runtime/kernel:kernel_includes",
103105
] + augmented_deps + get_vec_deps(),
@@ -119,7 +121,7 @@ def define_op_library(name, deps):
119121
link_whole = True,
120122
)
121123

122-
def define_op_target(name, deps):
124+
def define_op_target(name, compiler_flags, deps):
123125
"""Possibly defines cxx_library targets for the named operator group.
124126
125127
Args:
@@ -132,6 +134,7 @@ def define_op_target(name, deps):
132134
# versions defined here.
133135
define_op_library(
134136
name = name,
137+
compiler_flags = compiler_flags,
135138
deps = deps,
136139
)
137140

shim/xplat/executorch/kernels/optimized/op_registration_util.bzl

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ load(
1212
"get_vec_preprocessor_flags",
1313
)
1414

15-
def op_target(name, deps = []):
15+
def op_target(name, deps = [], compiler_flags = []):
1616
"""Registers an optimized implementation for an operator overload group.
1717
1818
An operator overload group is a set of operator overloads with a common
@@ -39,11 +39,13 @@ def op_target(name, deps = []):
3939
dependencies manageable. If two op targets would like to share
4040
code, define a separate runtime.cxx_library that they both depend
4141
on.
42+
compiler_flags: Optional compiler flags to add to the cxx_library().
4243
"""
4344

4445
# Note that this doesn't actually define the target, but helps register
4546
# it in a table that's used to define the target.
4647
return {
48+
"compiler_flags": compiler_flags,
4749
"deps": deps,
4850
"name": name,
4951
}
@@ -66,7 +68,7 @@ def _enforce_deps(deps, name):
6668
dep,
6769
))
6870

69-
def define_op_library(name, deps):
71+
def define_op_library(name, compiler_flags, deps):
7072
"""Defines a cxx_library target for the named operator overload group.
7173
7274
Args:
@@ -116,7 +118,7 @@ def define_op_library(name, deps):
116118
link_whole = True,
117119
)
118120

119-
def define_op_target(name, deps):
121+
def define_op_target(name, compiler_flags, deps):
120122
"""Possibly defines cxx_library targets for the named operator group.
121123
122124
Args:
@@ -129,6 +131,7 @@ def define_op_target(name, deps):
129131
# versions defined here.
130132
define_op_library(
131133
name = name,
134+
compiler_flags = compiler_flags,
132135
deps = deps,
133136
)
134137

0 commit comments

Comments
 (0)