|
@@ -13,6 +13,7 @@ set(IMC_PRINT_INIT_TIME 0 CACHE BOOL "")
|
|
|
set(IMC_PRINT_LATENCY_OVERHEAD 0 CACHE BOOL "")
|
|
set(IMC_PRINT_LATENCY_OVERHEAD 0 CACHE BOOL "")
|
|
|
set(IMC_ENABLE_DYNAMIC_CHECKPOINT 0 CACHE BOOL "")
|
|
set(IMC_ENABLE_DYNAMIC_CHECKPOINT 0 CACHE BOOL "")
|
|
|
|
|
|
|
|
|
|
+set(IMC_DUPLICATION_RATIO 100 CACHE BOOL "")
|
|
|
|
|
|
|
|
set(AVAILABLE_BENCHES "vBasicMath" "vStringSearch" "vFFT" "vSha" "vCrc" "vMatMul" "vConv2d" "adc_demo" "vAes" "fmc_expr" "vrefint_expr")
|
|
set(AVAILABLE_BENCHES "vBasicMath" "vStringSearch" "vFFT" "vSha" "vCrc" "vMatMul" "vConv2d" "adc_demo" "vAes" "fmc_expr" "vrefint_expr")
|
|
|
if(NOT IMC_BENCH_NAME IN_LIST AVAILABLE_BENCHES)
|
|
if(NOT IMC_BENCH_NAME IN_LIST AVAILABLE_BENCHES)
|
|
@@ -220,6 +221,8 @@ function(compile_imc_files)
|
|
|
list(APPEND PLUGIN_OPTIONS -load-pass-plugin=${PLUGIN})
|
|
list(APPEND PLUGIN_OPTIONS -load-pass-plugin=${PLUGIN})
|
|
|
endforeach()
|
|
endforeach()
|
|
|
|
|
|
|
|
|
|
+ set(OPT_OPTIONS "-imc-loop-opt-duplication-ratio=${IMC_DUPLICATION_RATIO}")
|
|
|
|
|
+
|
|
|
set(ADDITIONAL_DEFS
|
|
set(ADDITIONAL_DEFS
|
|
|
"-D imcBENCH_REPEAT_COUNT=${IMC_BENCH_REPEAT_COUNT}"
|
|
"-D imcBENCH_REPEAT_COUNT=${IMC_BENCH_REPEAT_COUNT}"
|
|
|
"-D imcCUSTOM_UNROLL=${IMC_CUSTOM_UNROLL}"
|
|
"-D imcCUSTOM_UNROLL=${IMC_CUSTOM_UNROLL}"
|
|
@@ -234,7 +237,7 @@ function(compile_imc_files)
|
|
|
OUTPUT ${PROJECT_BINARY_DIR}/${APP_SRC}.s
|
|
OUTPUT ${PROJECT_BINARY_DIR}/${APP_SRC}.s
|
|
|
DEPENDS ${APP_SRC}
|
|
DEPENDS ${APP_SRC}
|
|
|
COMMAND ${CMAKE_C_COMPILER} -g ${C_FLAGS} -O0 -Xclang -disable-O0-optnone ${INCLUDE_DIRS} -D USE_HAL_DRIVER -D STM32L552xx ${ADDITIONAL_DEFS} -c -emit-llvm ${PROJECT_SOURCE_DIR}/${APP_SRC} -o ${PROJECT_BINARY_DIR}/${APP_SRC}.bc
|
|
COMMAND ${CMAKE_C_COMPILER} -g ${C_FLAGS} -O0 -Xclang -disable-O0-optnone ${INCLUDE_DIRS} -D USE_HAL_DRIVER -D STM32L552xx ${ADDITIONAL_DEFS} -c -emit-llvm ${PROJECT_SOURCE_DIR}/${APP_SRC} -o ${PROJECT_BINARY_DIR}/${APP_SRC}.bc
|
|
|
- COMMAND ${OPT_BIN} -o ${PROJECT_BINARY_DIR}/${APP_SRC}_imc.bc ${PLUGIN_OPTIONS} -passes=${BASIC_OPT_PASSES},${IMC_OPT_PASSES} ${PROJECT_BINARY_DIR}/${APP_SRC}.bc
|
|
|
|
|
|
|
+ COMMAND ${OPT_BIN} -o ${PROJECT_BINARY_DIR}/${APP_SRC}_imc.bc ${PLUGIN_OPTIONS} -passes=${BASIC_OPT_PASSES},${IMC_OPT_PASSES} ${OPT_OPTIONS} ${PROJECT_BINARY_DIR}/${APP_SRC}.bc
|
|
|
COMMAND ${OPT_BIN} ${OPT} ${ADDITIONAL_OPT_FLAGS} -o ${PROJECT_BINARY_DIR}/${APP_SRC}.opt.bc ${PROJECT_BINARY_DIR}/${APP_SRC}_imc.bc
|
|
COMMAND ${OPT_BIN} ${OPT} ${ADDITIONAL_OPT_FLAGS} -o ${PROJECT_BINARY_DIR}/${APP_SRC}.opt.bc ${PROJECT_BINARY_DIR}/${APP_SRC}_imc.bc
|
|
|
COMMAND ${LLC_BIN} ${CPU} ${OPT} -o ${PROJECT_BINARY_DIR}/${APP_SRC}.s ${PROJECT_BINARY_DIR}/${APP_SRC}.opt.bc
|
|
COMMAND ${LLC_BIN} ${CPU} ${OPT} -o ${PROJECT_BINARY_DIR}/${APP_SRC}.s ${PROJECT_BINARY_DIR}/${APP_SRC}.opt.bc
|
|
|
)
|
|
)
|