Skip to content

Commit 1727cb4

Browse files
committed
[libclc] Skip opt command if opt_flags is empty
When the flag is empty, the opt command won't modify the bitcode; however, the command is slow for large bitcode files in debug mode.
1 parent da70881 commit 1727cb4

File tree

1 file changed

+25
-17
lines changed

1 file changed

+25
-17
lines changed

libclc/cmake/modules/AddLibclc.cmake

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -340,29 +340,37 @@ function(add_libclc_builtin_set)
340340
return()
341341
endif()
342342

343-
set( builtins_opt_lib_tgt builtins.opt.${ARG_ARCH_SUFFIX} )
343+
if( ${ARG_OPT_FLAGS} )
344+
set( builtins_opt_lib_tgt builtins.opt.${ARG_ARCH_SUFFIX} )
345+
346+
# Add opt target
347+
add_custom_command( OUTPUT ${builtins_opt_lib_tgt}.bc
348+
COMMAND ${opt_exe} ${ARG_OPT_FLAGS} -o ${builtins_opt_lib_tgt}.bc
349+
${builtins_link_lib}
350+
DEPENDS ${opt_target} ${builtins_link_lib} ${builtins_link_lib_tgt}
351+
)
352+
add_custom_target( ${builtins_opt_lib_tgt}
353+
ALL DEPENDS ${builtins_opt_lib_tgt}.bc
354+
)
355+
set_target_properties( ${builtins_opt_lib_tgt} PROPERTIES
356+
TARGET_FILE ${CMAKE_CURRENT_BINARY_DIR}/${builtins_opt_lib_tgt}.bc
357+
FOLDER "libclc/Device IR/Opt"
358+
)
344359

345-
# Add opt target
346-
add_custom_command( OUTPUT ${builtins_opt_lib_tgt}.bc
347-
COMMAND ${opt_exe} ${ARG_OPT_FLAGS} -o ${builtins_opt_lib_tgt}.bc
348-
${builtins_link_lib}
349-
DEPENDS ${opt_target} ${builtins_link_lib} ${builtins_link_lib_tgt}
350-
)
351-
add_custom_target( ${builtins_opt_lib_tgt}
352-
ALL DEPENDS ${builtins_opt_lib_tgt}.bc
353-
)
354-
set_target_properties( ${builtins_opt_lib_tgt} PROPERTIES
355-
TARGET_FILE ${CMAKE_CURRENT_BINARY_DIR}/${builtins_opt_lib_tgt}.bc
356-
FOLDER "libclc/Device IR/Opt"
357-
)
360+
set( builtins_opt_lib $<TARGET_PROPERTY:${builtins_opt_lib_tgt},TARGET_FILE> )
358361

359-
set( builtins_opt_lib $<TARGET_PROPERTY:${builtins_opt_lib_tgt},TARGET_FILE> )
362+
set( builtins_link_opt_lib ${builtins_opt_lib} )
363+
set( builtins_link_opt_lib_tgt ${builtins_opt_lib_tgt} )
364+
else()
365+
set( builtins_link_opt_lib ${builtins_link_lib} )
366+
set( builtins_link_opt_lib_tgt ${builtins_link_lib_tgt} )
367+
endif()
360368

361369
# Add prepare target
362370
set( obj_suffix ${ARG_ARCH_SUFFIX}.bc )
363371
add_custom_command( OUTPUT ${obj_suffix}
364-
COMMAND ${prepare_builtins_exe} -o ${obj_suffix} ${builtins_opt_lib}
365-
DEPENDS ${builtins_opt_lib} ${builtins_opt_lib_tgt} ${prepare_builtins_target} )
372+
COMMAND ${prepare_builtins_exe} -o ${obj_suffix} ${builtins_link_opt_lib}
373+
DEPENDS ${builtins_link_opt_lib} ${builtins_link_opt_lib_tgt} ${prepare_builtins_target} )
366374
add_custom_target( prepare-${obj_suffix} ALL DEPENDS ${obj_suffix} )
367375
set_target_properties( "prepare-${obj_suffix}" PROPERTIES FOLDER "libclc/Device IR/Prepare" )
368376

0 commit comments

Comments
 (0)