https://github.com/jhuber6 updated 
https://github.com/llvm/llvm-project/pull/174447

>From 454c4f9e4cb0ff20268b679635edeeba42ea9400 Mon Sep 17 00:00:00 2001
From: Joseph Huber <[email protected]>
Date: Mon, 5 Jan 2026 11:16:41 -0600
Subject: [PATCH 1/2] [libclc] Remove bitcode prepare utility from OpenCL
 library build

Summary:
This utility is unnecessary with the current usage. Right now it sets
linkage to linkonce_odr and deduplicates metadata nodes. The former is
not required as `-mlink-builtin-bitcode` will internalize all functions
anyway. The deduplication is no longer necessary as `llvm-link` handles
that. Removing this simplifies complexity and make it easier to
cross-build this utility as it no longer depends on host LLVM utilities
to be built in the proejct itself.
---
 libclc/CMakeLists.txt                |  3 ---
 libclc/cmake/modules/AddLibclc.cmake | 20 +++++++-------------
 2 files changed, 7 insertions(+), 16 deletions(-)

diff --git a/libclc/CMakeLists.txt b/libclc/CMakeLists.txt
index 985a568cc290b..b1fa8304f8fa2 100644
--- a/libclc/CMakeLists.txt
+++ b/libclc/CMakeLists.txt
@@ -198,9 +198,6 @@ list( SORT LIBCLC_TARGETS_TO_BUILD )
 # headers are not $build/include/ which is what LLVM_INCLUDE_DIR is set to.
 include_directories( ${LLVM_INCLUDE_DIRS} )
 
-# Configure prepare_builtins
-add_subdirectory( utils )
-
 # Setup arch devices
 set( r600--_devices cedar cypress barts cayman )
 set( amdgcn--_devices tahiti )
diff --git a/libclc/cmake/modules/AddLibclc.cmake 
b/libclc/cmake/modules/AddLibclc.cmake
index 53b8fa91bf3fe..24792dca1e2d3 100644
--- a/libclc/cmake/modules/AddLibclc.cmake
+++ b/libclc/cmake/modules/AddLibclc.cmake
@@ -437,27 +437,21 @@ function(add_libclc_builtin_set)
     # Non-SPIR-V targets add an extra step to optimize the bytecode
     set( builtins_opt_lib_tgt builtins.opt.${ARG_ARCH_SUFFIX} )
 
-    add_custom_command( OUTPUT 
${LIBCLC_ARCH_OBJFILE_DIR}/${builtins_opt_lib_tgt}.bc
-      COMMAND ${opt_exe} ${ARG_OPT_FLAGS} -o 
${LIBCLC_ARCH_OBJFILE_DIR}/${builtins_opt_lib_tgt}.bc
+    set( obj_suffix ${ARG_ARCH_SUFFIX}.bc )
+    set( libclc_builtins_lib ${LIBCLC_OUTPUT_LIBRARY_DIR}/${obj_suffix} )
+
+    add_custom_command( OUTPUT ${libclc_builtins_lib}
+      COMMAND ${opt_exe} ${ARG_OPT_FLAGS} -o ${libclc_builtins_lib}
         ${builtins_link_lib}
       DEPENDS ${opt_target} ${builtins_link_lib} ${builtins_link_lib_tgt}
     )
     add_custom_target( ${builtins_opt_lib_tgt}
-      ALL DEPENDS ${LIBCLC_ARCH_OBJFILE_DIR}/${builtins_opt_lib_tgt}.bc
+      ALL DEPENDS ${libclc_builtins_lib}
     )
     set_target_properties( ${builtins_opt_lib_tgt} PROPERTIES
-      TARGET_FILE ${LIBCLC_ARCH_OBJFILE_DIR}/${builtins_opt_lib_tgt}.bc
+      TARGET_FILE ${libclc_builtins_lib}
       FOLDER "libclc/Device IR/Opt"
     )
-
-    set( builtins_opt_lib 
$<TARGET_PROPERTY:${builtins_opt_lib_tgt},TARGET_FILE> )
-
-    set( obj_suffix ${ARG_ARCH_SUFFIX}.bc )
-    set( libclc_builtins_lib ${LIBCLC_OUTPUT_LIBRARY_DIR}/${obj_suffix} )
-    add_custom_command( OUTPUT ${libclc_builtins_lib}
-      COMMAND ${prepare_builtins_exe} -o ${libclc_builtins_lib} 
${builtins_opt_lib}
-      DEPENDS ${builtins_opt_lib} ${builtins_opt_lib_tgt} 
${prepare_builtins_target}
-    )
   endif()
 
   # Add a 'prepare' target

>From a1bfafb633930c00745ab7de9878a6faa65bf721 Mon Sep 17 00:00:00 2001
From: Joseph Huber <[email protected]>
Date: Mon, 5 Jan 2026 19:51:59 -0600
Subject: [PATCH 2/2] prepare to library no redundant target

---
 libclc/cmake/modules/AddLibclc.cmake | 27 ++++++++++-----------------
 1 file changed, 10 insertions(+), 17 deletions(-)

diff --git a/libclc/cmake/modules/AddLibclc.cmake 
b/libclc/cmake/modules/AddLibclc.cmake
index 24792dca1e2d3..b59391e69c9bb 100644
--- a/libclc/cmake/modules/AddLibclc.cmake
+++ b/libclc/cmake/modules/AddLibclc.cmake
@@ -445,32 +445,25 @@ function(add_libclc_builtin_set)
         ${builtins_link_lib}
       DEPENDS ${opt_target} ${builtins_link_lib} ${builtins_link_lib_tgt}
     )
-    add_custom_target( ${builtins_opt_lib_tgt}
-      ALL DEPENDS ${libclc_builtins_lib}
-    )
-    set_target_properties( ${builtins_opt_lib_tgt} PROPERTIES
-      TARGET_FILE ${libclc_builtins_lib}
-      FOLDER "libclc/Device IR/Opt"
-    )
   endif()
 
-  # Add a 'prepare' target
-  add_custom_target( prepare-${obj_suffix} ALL DEPENDS ${libclc_builtins_lib} )
-  set_target_properties( "prepare-${obj_suffix}" PROPERTIES
+  # Add a 'library' target
+  add_custom_target( library-${obj_suffix} ALL DEPENDS ${libclc_builtins_lib} )
+  set_target_properties( "library-${obj_suffix}" PROPERTIES
     TARGET_FILE ${libclc_builtins_lib}
-    FOLDER "libclc/Device IR/Prepare"
+    FOLDER "libclc/Device IR/Library"
   )
 
-  # Also add a 'prepare' target for the triple. Since a triple may have
+  # Also add a 'library' target for the triple. Since a triple may have
   # multiple devices, ensure we only try to create the triple target once. The
   # triple's target will build all of the bytecode for its constituent devices.
-  if( NOT TARGET prepare-${ARG_TRIPLE} )
-    add_custom_target( prepare-${ARG_TRIPLE} ALL )
+  if( NOT TARGET library-${ARG_TRIPLE} )
+    add_custom_target( library-${ARG_TRIPLE} ALL )
   endif()
-  add_dependencies( prepare-${ARG_TRIPLE} prepare-${obj_suffix} )
+  add_dependencies( library-${ARG_TRIPLE} library-${obj_suffix} )
   # Add dependency to top-level pseudo target to ease making other
   # targets dependent on libclc.
-  add_dependencies( ${ARG_PARENT_TARGET} prepare-${ARG_TRIPLE} )
+  add_dependencies( ${ARG_PARENT_TARGET} library-${ARG_TRIPLE} )
 
   libclc_install(FILES ${libclc_builtins_lib})
 
@@ -505,7 +498,7 @@ function(add_libclc_builtin_set)
     add_custom_command(
       OUTPUT ${LIBCLC_OUTPUT_LIBRARY_DIR}/${alias_suffix}
       COMMAND ${CMAKE_COMMAND} -E ${LIBCLC_LINK_OR_COPY} 
${LIBCLC_LINK_OR_COPY_SOURCE} ${LIBCLC_OUTPUT_LIBRARY_DIR}/${alias_suffix}
-      DEPENDS prepare-${obj_suffix}
+      DEPENDS library-${obj_suffix}
     )
     add_custom_target( alias-${alias_suffix} ALL
       DEPENDS ${LIBCLC_OUTPUT_LIBRARY_DIR}/${alias_suffix}

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to