[libclc] [libclc] Skip opt command if opt_flags is empty (PR #130882)
Wenju He via cfe-commits
cfe-commits at lists.llvm.org
Tue Mar 11 19:51:51 PDT 2025
https://github.com/wenju-he created https://github.com/llvm/llvm-project/pull/130882
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.
>From 1727cb49ebbee324ecad0a766ec341eb1aed082b Mon Sep 17 00:00:00 2001
From: Wenju He <wenju.he at intel.com>
Date: Tue, 11 Mar 2025 19:05:25 -0700
Subject: [PATCH] [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.
---
libclc/cmake/modules/AddLibclc.cmake | 42 +++++++++++++++++-----------
1 file changed, 25 insertions(+), 17 deletions(-)
diff --git a/libclc/cmake/modules/AddLibclc.cmake b/libclc/cmake/modules/AddLibclc.cmake
index 911559ff4bfa9..de24848256d72 100644
--- a/libclc/cmake/modules/AddLibclc.cmake
+++ b/libclc/cmake/modules/AddLibclc.cmake
@@ -340,29 +340,37 @@ function(add_libclc_builtin_set)
return()
endif()
- set( builtins_opt_lib_tgt builtins.opt.${ARG_ARCH_SUFFIX} )
+ if( ${ARG_OPT_FLAGS} )
+ set( builtins_opt_lib_tgt builtins.opt.${ARG_ARCH_SUFFIX} )
+
+ # Add opt target
+ add_custom_command( OUTPUT ${builtins_opt_lib_tgt}.bc
+ COMMAND ${opt_exe} ${ARG_OPT_FLAGS} -o ${builtins_opt_lib_tgt}.bc
+ ${builtins_link_lib}
+ DEPENDS ${opt_target} ${builtins_link_lib} ${builtins_link_lib_tgt}
+ )
+ add_custom_target( ${builtins_opt_lib_tgt}
+ ALL DEPENDS ${builtins_opt_lib_tgt}.bc
+ )
+ set_target_properties( ${builtins_opt_lib_tgt} PROPERTIES
+ TARGET_FILE ${CMAKE_CURRENT_BINARY_DIR}/${builtins_opt_lib_tgt}.bc
+ FOLDER "libclc/Device IR/Opt"
+ )
- # Add opt target
- add_custom_command( OUTPUT ${builtins_opt_lib_tgt}.bc
- COMMAND ${opt_exe} ${ARG_OPT_FLAGS} -o ${builtins_opt_lib_tgt}.bc
- ${builtins_link_lib}
- DEPENDS ${opt_target} ${builtins_link_lib} ${builtins_link_lib_tgt}
- )
- add_custom_target( ${builtins_opt_lib_tgt}
- ALL DEPENDS ${builtins_opt_lib_tgt}.bc
- )
- set_target_properties( ${builtins_opt_lib_tgt} PROPERTIES
- TARGET_FILE ${CMAKE_CURRENT_BINARY_DIR}/${builtins_opt_lib_tgt}.bc
- FOLDER "libclc/Device IR/Opt"
- )
+ set( builtins_opt_lib $<TARGET_PROPERTY:${builtins_opt_lib_tgt},TARGET_FILE> )
- set( builtins_opt_lib $<TARGET_PROPERTY:${builtins_opt_lib_tgt},TARGET_FILE> )
+ set( builtins_link_opt_lib ${builtins_opt_lib} )
+ set( builtins_link_opt_lib_tgt ${builtins_opt_lib_tgt} )
+ else()
+ set( builtins_link_opt_lib ${builtins_link_lib} )
+ set( builtins_link_opt_lib_tgt ${builtins_link_lib_tgt} )
+ endif()
# Add prepare target
set( obj_suffix ${ARG_ARCH_SUFFIX}.bc )
add_custom_command( OUTPUT ${obj_suffix}
- COMMAND ${prepare_builtins_exe} -o ${obj_suffix} ${builtins_opt_lib}
- DEPENDS ${builtins_opt_lib} ${builtins_opt_lib_tgt} ${prepare_builtins_target} )
+ COMMAND ${prepare_builtins_exe} -o ${obj_suffix} ${builtins_link_opt_lib}
+ DEPENDS ${builtins_link_opt_lib} ${builtins_link_opt_lib_tgt} ${prepare_builtins_target} )
add_custom_target( prepare-${obj_suffix} ALL DEPENDS ${obj_suffix} )
set_target_properties( "prepare-${obj_suffix}" PROPERTIES FOLDER "libclc/Device IR/Prepare" )
More information about the cfe-commits
mailing list