1- #-------------------------------------------------------------------------------
2- # Generate MLIRFIRScalar
3- #-------------------------------------------------------------------------------
4-
5- add_custom_command (
6- OUTPUT mlir-fir.o
7- COMMAND
8- ${BUDDY_MLIR_BUILD_DIR} /bin/buddy-opt
9- ${BUDDY_SOURCE_DIR} /benchmarks/AudioProcessing/Operations/FIROp/MLIRFIR.mlir
10- -convert-scf-to-cf
11- -llvm-request-c-wrappers
12- -convert-arith-to-llvm
13- -finalize-memref-to-llvm
14- -convert-func-to-llvm
15- -reconcile-unrealized-casts |
16- ${LLVM_MLIR_BINARY_DIR} /mlir-translate -mlir-to-llvmir |
17- ${LLVM_MLIR_BINARY_DIR} /llc
18- -mtriple=${BUDDY_OPT_TRIPLE}
19- -mattr=${BUDDY_OPT_ATTR}
20- -filetype=obj
21- -o ${BUDDY_BINARY_DIR} /../benchmarks/AudioProcessing/Operations/FIROp/mlir-fir.o
22- DEPENDS
23- ${BUDDY_MLIR_BUILD_DIR} /bin/buddy-opt
24- ${LLVM_MLIR_BINARY_DIR} /mlir-translate
25- ${LLVM_MLIR_BINARY_DIR} /llc
26- )
27-
28- add_library (MLIRFIRScalar STATIC mlir-fir.o)
29- set_target_properties (MLIRFIRScalar PROPERTIES LINKER_LANGUAGE CXX)
30-
31- #-------------------------------------------------------------------------------
32- # Generate MLIRFIRTiledVectorization
33- #-------------------------------------------------------------------------------
34-
35- add_custom_command (
36- OUTPUT fir-tile-vectorization.o
37- COMMAND
38- ${BUDDY_MLIR_BUILD_DIR} /bin/buddy-opt
39- ${BUDDY_SOURCE_DIR} /benchmarks/AudioProcessing/Operations/FIROp/MLIRFIRTiledVectorization.mlir
40- -convert-scf-to-cf
41- -convert-vector-to-llvm
42- -llvm-request-c-wrappers
43- -convert-arith-to-llvm
44- -finalize-memref-to-llvm
45- -convert-func-to-llvm
46- -reconcile-unrealized-casts |
47- ${LLVM_MLIR_BINARY_DIR} /mlir-translate -mlir-to-llvmir |
48- ${LLVM_MLIR_BINARY_DIR} /llc
49- -mtriple=${BUDDY_OPT_TRIPLE}
50- -mattr=${BUDDY_OPT_ATTR}
51- -filetype=obj
52- -o ${BUDDY_BINARY_DIR} /../benchmarks/AudioProcessing/Operations/FIROp/fir-tile-vectorization.o
53- DEPENDS
54- ${BUDDY_MLIR_BUILD_DIR} /bin/buddy-opt
55- ${LLVM_MLIR_BINARY_DIR} /mlir-translate
56- ${LLVM_MLIR_BINARY_DIR} /llc
57- )
58-
59- add_library (MLIRFIRTiledVectorization STATIC fir-tile-vectorization.o)
60- set_target_properties (MLIRFIRTiledVectorization PROPERTIES LINKER_LANGUAGE CXX)
61-
621#-------------------------------------------------------------------------------
632# Generate MLIRFIRVectorization
643#-------------------------------------------------------------------------------
654
66- add_custom_command (
67- OUTPUT fir-vectorization.o
68- COMMAND
69- ${BUDDY_MLIR_BUILD_DIR} /bin/buddy-opt
70- ${BUDDY_SOURCE_DIR} /benchmarks/AudioProcessing/Operations/FIROp/MLIRFIRVectorization.mlir
71- -convert-scf-to-cf
72- -convert-vector-to-llvm
73- -llvm-request-c-wrappers
74- -convert-arith-to-llvm
75- -finalize-memref-to-llvm
76- -convert-func-to-llvm
77- -reconcile-unrealized-casts |
78- ${LLVM_MLIR_BINARY_DIR} /mlir-translate -mlir-to-llvmir |
79- ${LLVM_MLIR_BINARY_DIR} /llc
80- -mtriple=${BUDDY_OPT_TRIPLE}
81- -mattr=${BUDDY_OPT_ATTR}
82- -filetype=obj
83- -o ${BUDDY_BINARY_DIR} /../benchmarks/AudioProcessing/Operations/FIROp/fir-vectorization.o
84- DEPENDS
85- ${BUDDY_MLIR_BUILD_DIR} /bin/buddy-opt
86- ${LLVM_MLIR_BINARY_DIR} /mlir-translate
87- ${LLVM_MLIR_BINARY_DIR} /llc
88- )
89-
90- add_library (MLIRFIRVectorization STATIC fir-vectorization.o)
91- set_target_properties (MLIRFIRVectorization PROPERTIES LINKER_LANGUAGE CXX)
5+ function (build_fir_vectorization type )
6+ add_custom_command (
7+ OUTPUT fir-vectorization-${type} .o
8+ COMMAND
9+ cat ${BUDDY_SOURCE_DIR} /benchmarks/AudioProcessing/Operations/FIROp/MLIRFIRVectorization.mlir |
10+ sed 's/TYPE_PLACEHOLDER/${type} /g' |
11+ ${BUDDY_MLIR_BUILD_DIR} /bin/buddy-opt
12+ -convert-scf-to-cf
13+ -convert-vector-to-llvm
14+ -llvm-request-c-wrappers
15+ -convert-arith-to-llvm
16+ -finalize-memref-to-llvm
17+ -convert-func-to-llvm
18+ -reconcile-unrealized-casts |
19+ ${LLVM_MLIR_BINARY_DIR} /mlir-translate -mlir-to-llvmir |
20+ ${LLVM_MLIR_BINARY_DIR} /llc
21+ -mtriple=${BUDDY_OPT_TRIPLE}
22+ -mattr=${BUDDY_OPT_ATTR}
23+ -filetype=obj
24+ -o ${BUDDY_BINARY_DIR} /../benchmarks/AudioProcessing/Operations/FIROp/fir-vectorization-${type} .o
25+ DEPENDS
26+ ${BUDDY_MLIR_BUILD_DIR} /bin/buddy-opt
27+ ${LLVM_MLIR_BINARY_DIR} /mlir-translate
28+ ${LLVM_MLIR_BINARY_DIR} /llc
29+ )
30+ add_library (MLIRFIRVectorization${type} STATIC fir-vectorization-${type} .o)
31+ set_target_properties (MLIRFIRVectorization${type} PROPERTIES LINKER_LANGUAGE CXX)
32+ endfunction ()
33+
34+ build_fir_vectorization(f32)
35+ build_fir_vectorization(f64)
9236
9337#-------------------------------------------------------------------------------
9438# Generate dap-op-fir-benchmark
@@ -105,9 +49,8 @@ target_link_libraries(dap-op-fir-benchmark PRIVATE
10549 # Third-party library
10650 kfr_io
10751 # MLIR hand-written benchmark
108- MLIRFIRScalar
109- MLIRFIRTiledVectorization
110- MLIRFIRVectorization
52+ MLIRFIRVectorizationf32
53+ MLIRFIRVectorizationf64
11154 # Buddy DAP library
11255 BuddyLibDAP
11356 # LLVM/MLIR library
0 commit comments