8000 update multi_targets to reduce the number of objects · numpy/numpy@e13ce41 · GitHub
[go: up one dir, main page]

Skip to content

Commit e13ce41

Browse files
seiko2plusrgommers
authored andcommitted
update multi_targets to reduce the number of objects
1 parent 76327b8 commit e13ce41

File tree

1 file changed

+66
-52
lines changed

1 file changed

+66
-52
lines changed

numpy/core/meson.build

Lines changed: 66 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -706,7 +706,7 @@ test_modules_src = [
706706
src_file.process('src/umath/_umath_tests.c.src'),
707707
'src/common/npy_cpu_features.c',
708708
],
709-
_umath_tests_mtargets
709+
_umath_tests_mtargets.static_lib('_umath_tests_mtargets')
710710
],
711711
['_rational_tests', 'src/umath/_rational_tests.c', []],
712712
['_struct_ufunc_tests', 'src/umath/_struct_ufunc_tests.c', []],
@@ -730,7 +730,6 @@ multiarray_gen_headers = [
730730
src_file.process('src/multiarray/arraytypes.h.src'),
731731
src_file.process('src/common/npy_sort.h.src'),
732732
]
733-
multiarray_umath_dispatch_link = []
734733
foreach gen_mtargets : [
735734
[
736735
'argfunc.dispatch.h',
@@ -743,22 +742,27 @@ foreach gen_mtargets : [
743742
]
744743
],
745744
]
746-
multiarray_umath_dispatch_link += mod_features.multi_targets(
747-
gen_mtargets[0], multiarray_gen_headers + gen_mtargets[1],
748-
dispatch: gen_mtargets[2],
749-
baseline: CPU_BASELINE,
750-
prefix: 'NPY_',
751-
dependencies: [py_dep, np_core_dep],
752-
c_args: c_args_common + max_opt,
753-
cpp_args: cpp_args_common + max_opt,
754-
include_directories: [
755-
'include',
756-
'src/common',
757-
'src/multiarray',
758-
'src/npymath',
759-
'src/umath'
760-
]
761-
)
745+
mtargets = mod_features.multi_targets(
746+
gen_mtargets[0], multiarray_gen_headers + gen_mtargets[1],
747+
dispatch: gen_mtargets[2],
748+
baseline: CPU_BASELINE,
749+
prefix: 'NPY_',
750+
dependencies: [py_dep, np_core_dep],
751+
c_args: c_args_common + max_opt,
752+
cpp_args: cpp_args_common + max_opt,
753+
include_directories: [
754+
'include',
755+
'src/common',
756+
'src/multiarray',
757+
'src/npymath',
758+
'src/umath'
759+
]
760+
)
761+
if not is_variable('multiarray_umath_mtargets')
762+
multiarray_umath_mtargets = mtargets
763+
else
764+
multiarray_umath_mtargets.extend(mtargets)
765+
endif
762766
endforeach
763767

764768
# Build npysort dispatch-able sources
@@ -775,22 +779,27 @@ foreach gen_mtargets : [
775779
[AVX512_SPR, AVX512_ICL]
776780
],
777781
]
778-
multiarray_umath_dispatch_link += mod_features.multi_targets(
779-
gen_mtargets[0], multiarray_gen_headers + gen_mtargets[1],
780-
dispatch: gen_mtargets[2],
781-
# baseline: CPU_BASELINE, it doesn't provide baseline fallback
782-
prefix: 'NPY_',
783-
dependencies: [py_dep, np_core_dep],
784-
c_args: c_args_common + max_opt,
785-
cpp_args: cpp_args_common + max_opt,
786-
include_directories: [
787-
'include',
788-
'src/common',
789-
'src/multiarray',
790-
'src/npymath',
791-
'src/umath'
792-
]
793-
)
782+
mtargets = mod_features.multi_targets(
783+
gen_mtargets[0], multiarray_gen_headers + gen_mtargets[1],
784+
dispatch: gen_mtargets[2],
785+
# baseline: CPU_BASELINE, it doesn't provide baseline fallback
786+
prefix: 'NPY_',
787+
dependencies: [py_dep, np_core_dep],
788+
c_args: c_args_common + max_opt,
789+
cpp_args: cpp_args_common + max_opt,
790+
include_directories: [
791+
'include',
792+
'src/common',
793+
'src/multiarray',
794+
'src/npymath',
795+
'src/umath'
796+
]
797+
)
798+
if not is_variable('multiarray_umath_mtargets')
799+
multiarray_umath_mtargets = mtargets
800+
else
801+
multiarray_umath_mtargets.extend(mtargets)
802+
endif
794803
endforeach
795804

796805
# Build umath dispatch-able sources
@@ -945,22 +954,27 @@ foreach gen_mtargets : [
945954
]
946955
],
947956
]
948-
multiarray_umath_dispatch_link += mod_features.multi_targets(
949-
gen_mtargets[0], umath_gen_headers + gen_mtargets[1],
950-
dispatch: gen_mtargets[2],
951-
baseline: CPU_BASELINE,
952-
prefix: 'NPY_',
953-
dependencies: [py_dep, np_core_dep],
954-
c_args: c_args_common + max_opt,
955-
cpp_args: cpp_args_common + max_opt,
956-
include_directories: [
957-
'include',
958-
'src/common',
959-
'src/multiarray',
960-
'src/npymath',
961-
'src/umath'
962-
]
963-
)
957+
mtargets = mod_features.multi_targets(
958+
gen_mtargets[0], umath_gen_headers + gen_mtargets[1],
959+
dispatch: gen_mtargets[2],
960+
baseline: CPU_BASELINE,
961+
prefix: 'NPY_',
962+
dependencies: [py_dep, np_core_dep],
963+
c_args: c_args_common + max_opt,
964+
cpp_args: cpp_args_common + max_opt,
965+
include_directories: [
966+
'include',
967+
'src/common',
968+
'src/multiarray',
969+
'src/npymath',
970+
'src/umath'
971+
]
972+
)
973+
if not is_variable('multiarray_umath_mtargets')
974+
multiarray_umath_mtargets = mtargets
975+
else
976+
multiarray_umath_mtargets.extend(mtargets)
977+
endif
964978
endforeach
965979

966980
# Build _multiarray_umath module
@@ -1135,7 +1149,7 @@ py.extension_module('_multiarray_umath',
11351149
'src/umath',
11361150
],
11371151
dependencies: blas_dep,
1138-
link_with: multiarray_umath_dispatch_link + npymath_lib,
1152+
link_with: [npymath_lib, multiarray_umath_mtargets.static_lib('_multiarray_umath_mtargets')],
11391153
install: true,
11401154
subdir: 'numpy/core',
11411155
)
@@ -1188,7 +1202,7 @@ py.extension_module('_simd',
11881202
c_args: c_args_common,
11891203
include_directories: ['src/_simd', 'src/npymath'],
11901204
dependencies: np_core_dep,
1191-
link_with: [_simd_mtargets] + npymath_lib,
1205+
link_with: [npymath_lib, _simd_mtargets.static_lib('_simd_mtargets')],
11921206
install: true,
11931207
subdir: 'numpy/core',
11941208
)

0 commit comments

Comments
 (0)
0