[libclc] [libclc] Skip opt command if opt_flags is empty (PR #130882)

Wenju He via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 20 16:51:13 PDT 2025


================
@@ -342,22 +342,32 @@ function(add_libclc_builtin_set)
 
   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
-  )
+  if( ${ARG_OPT_FLAGS} STREQUAL "" )
----------------
wenju-he wrote:

> I just realised this code isn't triggered upstream. I take it you have a downstream making use of it?

there is a case in upstream LLVM that opt flag is empty: https://github.com/llvm/llvm-project/blob/ad5cac3b06c3cb41397acc1fc96beae9b460f20c/libclc/CMakeLists.txt#L353

> I tried it locally and this needs to be `if( "${ARG_OPT_FLAGS} STREQUAL "" )` or maybe better yet `if ( NOT ARG_OPT_FLAGS )`. The code as-is generates an error if I pass in an empty OPT_FLAGS:
> 
> ```
> CMake Error at /llvm-project/libclc/cmake/modules/AddLibclc.cmake:345 (if):
>   if given arguments:
> 
>     "STREQUAL" ""
> 
>   Unknown arguments specified
> ```

Thanks for the testing. Changed to `if ( NOT ARG_OPT_FLAGS )`
I don't know what happened, a few days ago I did observe that bitcode size become smaller when opt flag is empty.


https://github.com/llvm/llvm-project/pull/130882


More information about the cfe-commits mailing list