Skip to content

Commit 8616419

Browse files
author
Colin Davidson
committed
Updated to use git-filter-repo and copy all the cmakelists
1 parent 7efc2f1 commit 8616419

7 files changed

Lines changed: 326 additions & 25 deletions

scripts/create_native_cpu.sh

Lines changed: 66 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,72 @@
33
# Usage : ./create_native_cpu.sh <ock_repo_path> <llvm_repo_path>
44
# Build dpc++ as normal
55
ock_repo=$1
6-
llvm_repo=$2
7-
8-
mkdir -p $llvm_repo/llvm/lib/SYCLNativeCPUUtils/compiler_passes
9-
cp -r $ock_repo/modules/compiler/multi_llvm/include/multi_llvm/* $llvm_repo/llvm/lib/SYCLNativeCPUUtils/compiler_passes/compiler_pipeline/include/multi_llvm
10-
cp -r $ock_repo/modules/compiler/vecz/include/vecz/* $llvm_repo/llvm/lib/SYCLNativeCPUUtils/compiler_passes/vecz/include
11-
12-
for f in address_spaces.h cl_builtin_info.h encode_kernel_metadata_pass.h pass_functions.h scheduling.h verify_reqd_sub_group_size_pass.h \
13-
attributes.h define_mux_builtins_pass.h group_collective_helpers.h pass_machinery.h sub_group_analysis.h work_item_loops_pass.h \
14-
barrier_regions.h device_info.h mangling.h prepare_barriers_pass.h target_extension_types.h \
15-
builtin_info.h dma.h metadata.h replace_local_module_scope_variables_pass.h unique_opaque_structs_pass.h
16-
do
17-
cp $ock_repo/modules/compiler/compiler_pipeline/include/compiler/utils/$f $llvm_repo/llvm/lib/SYCLNativeCPUUtils/compiler_passes/compiler_pipeline/include/compiler/utils
18-
done
19-
20-
for f in attributes.cpp define_mux_builtins_pass.cpp mangling.cpp pass_machinery.cpp sub_group_analysis.cpp work_item_loops_pass.cpp \
21-
barrier_regions.cpp dma.cpp metadata.cpp prepare_barriers_pass.cpp target_extension_types.cpp \
22-
builtin_info.cpp encode_kernel_metadata_pass.cpp mux_builtin_info.cpp replace_local_module_scope_variables_pass.cpp unique_opaque_structs_pass.cpp \
23-
cl_builtin_info.cpp group_collective_helpers.cpp pass_functions.cpp scheduling.cpp verify_reqd_sub_group_size_pass.cpp
24-
do
25-
cp $ock_repo/modules/compiler/compiler_pipeline/source/$f $llvm_repo/llvm/lib/SYCLNativeCPUUtils/compiler_passes/compiler_pipeline/source
26-
done
6+
ock_user=$2
7+
ock_branch=$3
8+
llvm_repo=$4
9+
llvm_branch=$5
10+
script_dir=$( realpath `dirname -- "${BASH_SOURCE[0]}"` )
11+
set -x
12+
rm -rf $1
13+
git clone git@github.com:uxlfoundation/oneapi-construction-kit.git $1
14+
cd $1
15+
git-filter-repo --paths-from-file $script_dir/native_cpu_paths.txt
16+
mkdir -p llvm/lib/SYCLNativeCPUUtils/compiler_passes
17+
18+
git mv modules/compiler/compiler_pipeline llvm/lib/SYCLNativeCPUUtils/compiler_passes/
19+
git mv modules/compiler/vecz/ llvm/lib/SYCLNativeCPUUtils/compiler_passes/
20+
git mv modules/compiler/multi_llvm/include/multi_llvm llvm/lib/SYCLNativeCPUUtils/compiler_passes/compiler_pipeline/include/
21+
git rm -rf modules
22+
cp $script_dir/native_cpu_compiler_passes_CMakeLists.txt llvm/lib/SYCLNativeCPUUtils/compiler_passes/CMakeLists.txt
23+
cp $script_dir/native_cpu_compiler_pipeline_CMakeLists.txt llvm/lib/SYCLNativeCPUUtils/compiler_passes/compiler_pipeline/CMakeLists.txt
24+
cp $script_dir/native_cpu_vecz_CMakeLists.txt llvm/lib/SYCLNativeCPUUtils/compiler_passes/vecz/CMakeLists.txt
25+
26+
if [ "$ock_branch" != "" ]; then
27+
git branch -D $ock_branch
28+
git checkout -b $ock_branch
29+
git add llvm
30+
git commit -F $script_dir/native_cpu_commit_message.txt
31+
git clean -d -f
32+
git remote add ock_fork git@github.com:${ock_user}/oneapi-construction-kit.git
33+
git push --set-upstream ock_fork $ock_branch --force
34+
35+
if [ "$llvm_repo" != "" ]; then
36+
if [ "$llvm_branch" != "" ]; then
37+
cd $llvm_repo
38+
git checkout sycl
39+
git branch -D $llvm_branch
40+
git checkout -b $llvm_branch
41+
git fetch ock_fork $ock_branch
42+
git merge -m "[NATIVE_CPU][SYCL] Merge from oneAPI Construction Kit into native_cpu" --allow-unrelated-histories ock_fork/$ock_branch
43+
cp $script_dir/native_cpu_CMakeLists.txt $llvm_repo/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt
44+
sed -i "s/DNATIVECPU_USE_OCK=OFF/DNATIVECPU_USE_OCK=ON/" $llvm_repo/.github/workflows/sycl-linux-build.yml
45+
git add $llvm_repo/llvm/lib/SYCLNativeCPUUtils/CMakeLists.txt $llvm_repo/.github/workflows/sycl-linux-build.yml
46+
git commit -m "[NATIVE_CPU][SYCL] Switch to using native_cpu compiler pipeline inline from OCK fetch"
47+
fi
48+
fi
49+
fi
50+
51+
52+
# mkdir -p $llvm_repo/llvm/lib/SYCLNativeCPUUtils/compiler_passes
53+
# cp -r $ock_repo/modules/compiler/multi_llvm/include/multi_llvm/* $llvm_repo/llvm/lib/SYCLNativeCPUUtils/compiler_passes/compiler_pipeline/include/multi_llvm
54+
# cp -r $ock_repo/modules/compiler/vecz/include/vecz/* $llvm_repo/llvm/lib/SYCLNativeCPUUtils/compiler_passes/vecz/include
55+
56+
# for f in address_spaces.h cl_builtin_info.h encode_kernel_metadata_pass.h pass_functions.h scheduling.h verify_reqd_sub_group_size_pass.h \
57+
# attributes.h define_mux_builtins_pass.h group_collective_helpers.h pass_machinery.h sub_group_analysis.h work_item_loops_pass.h \
58+
# barrier_regions.h device_info.h mangling.h prepare_barriers_pass.h target_extension_types.h \
59+
# builtin_info.h dma.h metadata.h replace_local_module_scope_variables_pass.h unique_opaque_structs_pass.h
60+
# do
61+
# cp $ock_repo/modules/compiler/compiler_pipeline/include/compiler/utils/$f $llvm_repo/llvm/lib/SYCLNativeCPUUtils/compiler_passes/compiler_pipeline/include/compiler/utils
62+
# done
63+
64+
# for f in attributes.cpp define_mux_builtins_pass.cpp mangling.cpp pass_machinery.cpp sub_group_analysis.cpp work_item_loops_pass.cpp \
65+
# barrier_regions.cpp dma.cpp metadata.cpp prepare_barriers_pass.cpp target_extension_types.cpp \
66+
# builtin_info.cpp encode_kernel_metadata_pass.cpp mux_builtin_info.cpp replace_local_module_scope_variables_pass.cpp unique_opaque_structs_pass.cpp \
67+
# cl_builtin_info.cpp group_collective_helpers.cpp pass_functions.cpp scheduling.cpp verify_reqd_sub_group_size_pass.cpp
68+
# do
69+
# echo $f
70+
# done
71+
# cp $ock_repo/modules/compiler/compiler_pipeline/source/$f $llvm_repo/llvm/lib/SYCLNativeCPUUtils/compiler_passes/compiler_pipeline/source
2772

2873

2974

scripts/native_cpu_CMakeLists.txt

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,42 @@
1-
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/AddCA.cmake)
1+
set(OCK_LIBS)
2+
option(NATIVECPU_USE_OCK "Use the oneAPI Construction Kit for Native CPU" ON)
23

3-
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/multi_llvm)
4-
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/compiler_pipeline)
5-
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/vecz)
4+
# Don't use OCK compiler_passes if Native CPU is not enabled.
5+
if(NOT "native_cpu" IN_LIST SYCL_ENABLE_BACKENDS)
6+
set(NATIVECPU_USE_OCK Off CACHE BOOL "Use the oneAPI Construction Kit for Native CPU" FORCE)
7+
endif()
8+
9+
if(NATIVECPU_USE_OCK)
10+
add_subdirectory(compiler_passes EXCLUDE_FROM_ALL)
11+
set(OCK_LIBS NativeCPUPipeline NativeCPUVecz)
12+
endif()
13+
14+
add_llvm_component_library(LLVMSYCLNativeCPUUtils
15+
PipelineSYCLNativeCPU.cpp
16+
PrepareSYCLNativeCPU.cpp
17+
RenameKernelSYCLNativeCPU.cpp
18+
ConvertToMuxBuiltinsSYCLNativeCPU.cpp
19+
20+
ADDITIONAL_HEADER_DIRS
21+
${LLVM_MAIN_INCLUDE_DIR}/llvm/SYCLLowerIR
22+
23+
LINK_COMPONENTS
24+
Analysis
25+
Core
26+
Support
27+
Passes
28+
SYCLLowerIR
29+
Target
30+
TargetParser
31+
TransformUtils
32+
ipo
33+
${OCK_LIBS}
34+
)
35+
36+
37+
if(NATIVECPU_USE_OCK)
38+
target_compile_definitions(LLVMSYCLNativeCPUUtils PRIVATE NATIVECPU_USE_OCK)
39+
target_include_directories(LLVMSYCLNativeCPUUtils PRIVATE
40+
${CMAKE_CURRENT_SOURCE_DIR}/compiler_passes/compiler_pipeline/include
41+
${CMAKE_CURRENT_SOURCE_DIR}/compiler_passes/vecz/include)
42+
endif()
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[NATIVE_CPU][SYCL] Update CMakes to be more LLVM like and update directory structure
2+
3+
Move directory structure of files required for native cpu into appropriate
4+
directory structure under lvm/lib/SYCLNativeCPUUtils.
5+
6+
This also updates the CMakeLists.txt to be appropriate for llvm components,
7+
rather in the style of oneAPI Construction Kit.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/compiler_pipeline)
2+
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/vecz)
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
add_llvm_component_library(LLVMNativeCPUPipeline
2+
${CMAKE_CURRENT_SOURCE_DIR}/source/attributes.cpp
3+
${CMAKE_CURRENT_SOURCE_DIR}/source/barrier_regions.cpp
4+
${CMAKE_CURRENT_SOURCE_DIR}/source/builtin_info.cpp
5+
${CMAKE_CURRENT_SOURCE_DIR}/source/cl_builtin_info.cpp
6+
${CMAKE_CURRENT_SOURCE_DIR}/source/define_mux_builtins_pass.cpp
7+
${CMAKE_CURRENT_SOURCE_DIR}/source/dma.cpp
8+
${CMAKE_CURRENT_SOURCE_DIR}/source/encode_kernel_metadata_pass.cpp
9+
${CMAKE_CURRENT_SOURCE_DIR}/source/group_collective_helpers.cpp
10+
${CMAKE_CURRENT_SOURCE_DIR}/source/mangling.cpp
11+
${CMAKE_CURRENT_SOURCE_DIR}/source/metadata.cpp
12+
${CMAKE_CURRENT_SOURCE_DIR}/source/mux_builtin_info.cpp
13+
${CMAKE_CURRENT_SOURCE_DIR}/source/pass_functions.cpp
14+
${CMAKE_CURRENT_SOURCE_DIR}/source/pass_machinery.cpp
15+
${CMAKE_CURRENT_SOURCE_DIR}/source/prepare_barriers_pass.cpp
16+
${CMAKE_CURRENT_SOURCE_DIR}/source/replace_local_module_scope_variables_pass.cpp
17+
${CMAKE_CURRENT_SOURCE_DIR}/source/scheduling.cpp
18+
${CMAKE_CURRENT_SOURCE_DIR}/source/sub_group_analysis.cpp
19+
${CMAKE_CURRENT_SOURCE_DIR}/source/target_extension_types.cpp
20+
${CMAKE_CURRENT_SOURCE_DIR}/source/work_item_loops_pass.cpp
21+
22+
LINK_COMPONENTS
23+
Passes
24+
Core
25+
)
26+
27+
# TODO: Move to under LLVM include and work out why ADDITIONAL_HEADER_DIRS
28+
# does not capture it.
29+
target_include_directories(LLVMNativeCPUPipeline PUBLIC
30+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
31+
)

scripts/native_cpu_paths.txt

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
modules/compiler/vecz
2+
modules/compiler/compiler_pipeline/include/compiler/utils/address_spaces.h
3+
modules/compiler/compiler_pipeline/include/compiler/utils/cl_builtin_info.h
4+
modules/compiler/compiler_pipeline/include/compiler/utils/encode_kernel_metadata_pass.h
5+
modules/compiler/compiler_pipeline/include/compiler/utils/pass_functions.h
6+
modules/compiler/compiler_pipeline/include/compiler/utils/scheduling.h
7+
modules/compiler/compiler_pipeline/include/compiler/utils/verify_reqd_sub_group_size_pass.h
8+
modules/compiler/compiler_pipeline/include/compiler/utils/attributes.h
9+
modules/compiler/compiler_pipeline/include/compiler/utils/define_mux_builtins_pass.h
10+
modules/compiler/compiler_pipeline/include/compiler/utils/group_collective_helpers.h
11+
modules/compiler/compiler_pipeline/include/compiler/utils/pass_machinery.h
12+
modules/compiler/compiler_pipeline/include/compiler/utils/sub_group_analysis.h
13+
modules/compiler/compiler_pipeline/include/compiler/utils/work_item_loops_pass.h
14+
modules/compiler/compiler_pipeline/include/compiler/utils/barrier_regions.h
15+
modules/compiler/compiler_pipeline/include/compiler/utils/device_info.h
16+
modules/compiler/compiler_pipeline/include/compiler/utils/mangling.h
17+
modules/compiler/compiler_pipeline/include/compiler/utils/prepare_barriers_pass.h
18+
modules/compiler/compiler_pipeline/include/compiler/utils/target_extension_types.h
19+
modules/compiler/compiler_pipeline/include/compiler/utils/builtin_info.h
20+
modules/compiler/compiler_pipeline/include/compiler/utils/dma.h
21+
modules/compiler/compiler_pipeline/include/compiler/utils/metadata.h
22+
modules/compiler/compiler_pipeline/include/compiler/utils/replace_local_module_scope_variables_pass.h
23+
modules/compiler/compiler_pipeline/include/compiler/utils/unique_opaque_structs_pass.h
24+
modules/compiler/compiler_pipeline/source/attributes.cpp
25+
modules/compiler/compiler_pipeline/source/define_mux_builtins_pass.cpp
26+
modules/compiler/compiler_pipeline/source/mangling.cpp
27+
modules/compiler/compiler_pipeline/source/pass_machinery.cpp
28+
modules/compiler/compiler_pipeline/source/sub_group_analysis.cpp
29+
modules/compiler/compiler_pipeline/source/work_item_loops_pass.cpp
30+
modules/compiler/compiler_pipeline/source/barrier_regions.cpp
31+
modules/compiler/compiler_pipeline/source/dma.cpp
32+
modules/compiler/compiler_pipeline/source/metadata.cpp
33+
modules/compiler/compiler_pipeline/source/prepare_barriers_pass.cpp
34+
modules/compiler/compiler_pipeline/source/target_extension_types.cpp
35+
modules/compiler/compiler_pipeline/source/builtin_info.cpp
36+
modules/compiler/compiler_pipeline/source/encode_kernel_metadata_pass.cpp
37+
modules/compiler/compiler_pipeline/source/mux_builtin_info.cpp
38+
modules/compiler/compiler_pipeline/source/replace_local_module_scope_variables_pass.cpp
39+
modules/compiler/compiler_pipeline/source/unique_opaque_structs_pass.cpp
40+
modules/compiler/compiler_pipeline/source/cl_builtin_info.cpp
41+
modules/compiler/compiler_pipeline/source/group_collective_helpers.cpp
42+
modules/compiler/compiler_pipeline/source/pass_functions.cpp
43+
modules/compiler/compiler_pipeline/source/scheduling.cpp
44+
modules/compiler/compiler_pipeline/source/verify_reqd_sub_group_size_pass.cpp
45+
modules/compiler/multi_llvm/include/multi_llvm
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
set(VECZ_PUBLIC_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include)
2+
set(VECZ_PRIVATE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/source)
3+
set(VECZ_PRIVATE_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/source/include)
4+
5+
set(COMMON_SRCS
6+
${VECZ_PUBLIC_INCLUDE_DIR}/vecz/pass.h
7+
${VECZ_PUBLIC_INCLUDE_DIR}/vecz/vecz_choices.h
8+
${VECZ_PUBLIC_INCLUDE_DIR}/vecz/vecz_target_info.h
9+
${VECZ_PRIVATE_INCLUDE_DIR}/analysis/control_flow_analysis.h
10+
${VECZ_PRIVATE_INCLUDE_DIR}/analysis/divergence_analysis.h
11+
${VECZ_PRIVATE_INCLUDE_DIR}/analysis/instantiation_analysis.h
12+
${VECZ_PRIVATE_INCLUDE_DIR}/analysis/liveness_analysis.h
13+
${VECZ_PRIVATE_INCLUDE_DIR}/analysis/packetization_analysis.h
14+
${VECZ_PRIVATE_INCLUDE_DIR}/analysis/simd_width_analysis.h
15+
${VECZ_PRIVATE_INCLUDE_DIR}/analysis/stride_analysis.h
16+
${VECZ_PRIVATE_INCLUDE_DIR}/analysis/uniform_value_analysis.h
17+
${VECZ_PRIVATE_INCLUDE_DIR}/analysis/vectorizable_function_analysis.h
18+
${VECZ_PRIVATE_INCLUDE_DIR}/analysis/vectorization_unit_analysis.h
19+
${VECZ_PRIVATE_INCLUDE_DIR}/transform/common_gep_elimination_pass.h
20+
${VECZ_PRIVATE_INCLUDE_DIR}/transform/control_flow_conversion_pass.h
21+
${VECZ_PRIVATE_INCLUDE_DIR}/transform/inline_post_vectorization_pass.h
22+
${VECZ_PRIVATE_INCLUDE_DIR}/transform/instantiation_pass.h
23+
${VECZ_PRIVATE_INCLUDE_DIR}/transform/interleaved_group_combine_pass.h
24+
${VECZ_PRIVATE_INCLUDE_DIR}/transform/packetization_helpers.h
25+
${VECZ_PRIVATE_INCLUDE_DIR}/transform/packetization_pass.h
26+
${VECZ_PRIVATE_INCLUDE_DIR}/transform/packetizer.h
27+
${VECZ_PRIVATE_INCLUDE_DIR}/transform/passes.h
28+
${VECZ_PRIVATE_INCLUDE_DIR}/transform/printf_scalarizer.h
29+
${VECZ_PRIVATE_INCLUDE_DIR}/transform/scalarization_pass.h
30+
${VECZ_PRIVATE_INCLUDE_DIR}/transform/scalarizer.h
31+
${VECZ_PRIVATE_INCLUDE_DIR}/transform/ternary_transform_pass.h
32+
${VECZ_PRIVATE_INCLUDE_DIR}/control_flow_boscc.h
33+
${VECZ_PRIVATE_INCLUDE_DIR}/control_flow_roscc.h
34+
${VECZ_PRIVATE_INCLUDE_DIR}/debugging.h
35+
${VECZ_PRIVATE_INCLUDE_DIR}/ir_cleanup.h
36+
${VECZ_PRIVATE_INCLUDE_DIR}/llvm_helpers.h
37+
${VECZ_PRIVATE_INCLUDE_DIR}/memory_operations.h
38+
${VECZ_PRIVATE_INCLUDE_DIR}/offset_info.h
39+
${VECZ_PRIVATE_INCLUDE_DIR}/reachability.h
40+
${VECZ_PRIVATE_INCLUDE_DIR}/simd_packet.h
41+
${VECZ_PRIVATE_INCLUDE_DIR}/vectorization_context.h
42+
${VECZ_PRIVATE_INCLUDE_DIR}/vectorization_helpers.h
43+
${VECZ_PRIVATE_INCLUDE_DIR}/vectorization_heuristics.h
44+
${VECZ_PRIVATE_INCLUDE_DIR}/vectorization_unit.h
45+
${VECZ_PRIVATE_INCLUDE_DIR}/vectorizer.h
46+
${VECZ_PRIVATE_INCLUDE_DIR}/vecz_pass_builder.h
47+
${VECZ_PRIVATE_SOURCE_DIR}/analysis/control_flow_analysis.cpp
48+
${VECZ_PRIVATE_SOURCE_DIR}/analysis/divergence_analysis.cpp
49+
${VECZ_PRIVATE_SOURCE_DIR}/analysis/instantiation_analysis.cpp
50+
${VECZ_PRIVATE_SOURCE_DIR}/analysis/liveness_analysis.cpp
51+
${VECZ_PRIVATE_SOURCE_DIR}/analysis/packetization_analysis.cpp
52+
${VECZ_PRIVATE_SOURCE_DIR}/analysis/simd_width_analysis.cpp
53+
${VECZ_PRIVATE_SOURCE_DIR}/analysis/stride_analysis.cpp
54+
${VECZ_PRIVATE_SOURCE_DIR}/analysis/uniform_value_analysis.cpp
55+
${VECZ_PRIVATE_SOURCE_DIR}/analysis/vectorizable_function_analysis.cpp
56+
${VECZ_PRIVATE_SOURCE_DIR}/analysis/vectorization_unit_analysis.cpp
57+
${VECZ_PRIVATE_SOURCE_DIR}/transform/basic_mem2reg_pass.cpp
58+
${VECZ_PRIVATE_SOURCE_DIR}/transform/builtin_inlining_pass.cpp
59+
${VECZ_PRIVATE_SOURCE_DIR}/transform/common_gep_elimination_pass.cpp
60+
${VECZ_PRIVATE_SOURCE_DIR}/transform/control_flow_conversion_pass.cpp
61+
${VECZ_PRIVATE_SOURCE_DIR}/transform/inline_post_vectorization_pass.cpp
62+
${VECZ_PRIVATE_SOURCE_DIR}/transform/loop_rotate_custom_pass.cpp
63+
${VECZ_PRIVATE_SOURCE_DIR}/transform/instantiation_pass.cpp
64+
${VECZ_PRIVATE_SOURCE_DIR}/transform/interleaved_group_combine_pass.cpp
65+
${VECZ_PRIVATE_SOURCE_DIR}/transform/packetization_helpers.cpp
66+
${VECZ_PRIVATE_SOURCE_DIR}/transform/packetization_pass.cpp
67+
${VECZ_PRIVATE_SOURCE_DIR}/transform/packetizer.cpp
68+
${VECZ_PRIVATE_SOURCE_DIR}/transform/passes.cpp
69+
${VECZ_PRIVATE_SOURCE_DIR}/transform/pre_linearize_pass.cpp
70+
${VECZ_PRIVATE_SOURCE_DIR}/transform/printf_scalarizer.cpp
71+
${VECZ_PRIVATE_SOURCE_DIR}/transform/remove_intptr_pass.cpp
72+
${VECZ_PRIVATE_SOURCE_DIR}/transform/scalarization_pass.cpp
73+
${VECZ_PRIVATE_SOURCE_DIR}/transform/scalarizer.cpp
74+
${VECZ_PRIVATE_SOURCE_DIR}/transform/simplify_infinite_loop_pass.cpp
75+
${VECZ_PRIVATE_SOURCE_DIR}/transform/squash_small_vectors_pass.cpp
76+
${VECZ_PRIVATE_SOURCE_DIR}/transform/ternary_transform_pass.cpp
77+
${VECZ_PRIVATE_SOURCE_DIR}/transform/uniform_reassociation_pass.cpp
78+
${VECZ_PRIVATE_SOURCE_DIR}/control_flow_boscc.cpp
79+
${VECZ_PRIVATE_SOURCE_DIR}/control_flow_roscc.cpp
80+
${VECZ_PRIVATE_SOURCE_DIR}/debugging.cpp
81+
${VECZ_PRIVATE_SOURCE_DIR}/ir_cleanup.cpp
82+
${VECZ_PRIVATE_SOURCE_DIR}/llvm_helpers.cpp
83+
${VECZ_PRIVATE_SOURCE_DIR}/memory_operations.cpp
84+
${VECZ_PRIVATE_SOURCE_DIR}/offset_info.cpp
85+
${VECZ_PRIVATE_SOURCE_DIR}/pass.cpp
86+
${VECZ_PRIVATE_SOURCE_DIR}/reachability.cpp
87+
${VECZ_PRIVATE_SOURCE_DIR}/simd_packet.cpp
88+
${VECZ_PRIVATE_SOURCE_DIR}/vector_target_info.cpp
89+
${VECZ_PRIVATE_SOURCE_DIR}/vector_target_info_arm.cpp
90+
${VECZ_PRIVATE_SOURCE_DIR}/vector_target_info_riscv.cpp
91+
${VECZ_PRIVATE_SOURCE_DIR}/vectorization_choices.cpp
92+
${VECZ_PRIVATE_SOURCE_DIR}/vectorization_context.cpp
93+
${VECZ_PRIVATE_SOURCE_DIR}/vectorization_helpers.cpp
94+
${VECZ_PRIVATE_SOURCE_DIR}/vectorization_heuristics.cpp
95+
${VECZ_PRIVATE_SOURCE_DIR}/vectorization_unit.cpp
96+
${VECZ_PRIVATE_SOURCE_DIR}/vectorizer.cpp
97+
${VECZ_PRIVATE_SOURCE_DIR}/vecz_pass_builder.cpp
98+
)
99+
100+
if(MSVC)
101+
# Disable: unreferenced formal parameter.
102+
list(REMOVE_ITEM VECZ_COMPILE_OPTIONS -we4100)
103+
list(APPEND VECZ_COMPILE_OPTIONS -wd4100)
104+
endif()
105+
106+
add_llvm_component_library(LLVMNativeCPUVecz
107+
${COMMON_SRCS}
108+
LINK_COMPONENTS
109+
NativeCPUPipeline
110+
support
111+
core
112+
analysis
113+
instcombine
114+
aggressiveinstcombine
115+
transformutils
116+
scalaropts
117+
ipo
118+
passes
119+
)
120+
121+
target_include_directories(LLVMNativeCPUVecz
122+
PUBLIC $<BUILD_INTERFACE:${VECZ_PUBLIC_INCLUDE_DIR}>
123+
PRIVATE $<BUILD_INTERFACE:${VECZ_PRIVATE_INCLUDE_DIR}>
124+
)
125+
target_compile_options(LLVMNativeCPUVecz PRIVATE ${VECZ_COMPILE_OPTIONS})
126+
target_compile_definitions(LLVMNativeCPUVecz PRIVATE
127+
${VECZ_COMPILE_DEFINITIONS})
128+
129+
# Currently disabled by default, these allow us to run lit tests using veczc
130+
set(BUILD_VECZ_TEST_TOOLS OFF CACHE BOOL "Build vecz test and tools" FORCE)
131+
if (BUILD_VECZ_TEST_TOOLS)
132+
add_subdirectory(tools)
133+
add_subdirectory(test)
134+
endif()

0 commit comments

Comments
 (0)