compnerd created this revision. compnerd added a reviewer: craig.topper. Herald added subscribers: luke957, luismarques, s.egerton, PkmX, simoncook, kristof.beyls, mgorny. compnerd requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits.
This splits out the generated headers and conditonalises them upon the target being enabled. The motivation here is that the RISCV header alone added 10MB to the resource directory, which was previously at 10MB, increasing the build size and time. This header is contributing ~50% of the size of the resource headers (~10MB). The ARM generated headers are contributing about ~10% or 1MB. This could be extended further adding only the static resource headers for the targets that the LLVM build supports. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D112890 Files: clang/lib/Headers/CMakeLists.txt Index: clang/lib/Headers/CMakeLists.txt =================================================================== --- clang/lib/Headers/CMakeLists.txt +++ clang/lib/Headers/CMakeLists.txt @@ -206,20 +206,24 @@ endforeach( f ) # Generate header files and copy them to the build directory -# Generate arm_neon.h -clang_generate_header(-gen-arm-neon arm_neon.td arm_neon.h) -# Generate arm_fp16.h -clang_generate_header(-gen-arm-fp16 arm_fp16.td arm_fp16.h) -# Generate arm_sve.h -clang_generate_header(-gen-arm-sve-header arm_sve.td arm_sve.h) -# Generate arm_bf16.h -clang_generate_header(-gen-arm-bf16 arm_bf16.td arm_bf16.h) -# Generate arm_mve.h -clang_generate_header(-gen-arm-mve-header arm_mve.td arm_mve.h) -# Generate arm_cde.h -clang_generate_header(-gen-arm-cde-header arm_cde.td arm_cde.h) -# Generate riscv_vector.h -clang_generate_header(-gen-riscv-vector-header riscv_vector.td riscv_vector.h) +if(ARM IN_LIST LLVM_TARGETS_TO_BUILD OR AArch64 IN_LIST LLVM_TARGETS_TO_BUILD) + # Generate arm_neon.h + clang_generate_header(-gen-arm-neon arm_neon.td arm_neon.h) + # Generate arm_fp16.h + clang_generate_header(-gen-arm-fp16 arm_fp16.td arm_fp16.h) + # Generate arm_sve.h + clang_generate_header(-gen-arm-sve-header arm_sve.td arm_sve.h) + # Generate arm_bf16.h + clang_generate_header(-gen-arm-bf16 arm_bf16.td arm_bf16.h) + # Generate arm_mve.h + clang_generate_header(-gen-arm-mve-header arm_mve.td arm_mve.h) + # Generate arm_cde.h + clang_generate_header(-gen-arm-cde-header arm_cde.td arm_cde.h) +endif() +if(RISCV IN_LIST LLVM_TARGETS_TO_BUILD) + # Generate riscv_vector.h + clang_generate_header(-gen-riscv-vector-header riscv_vector.td riscv_vector.h) +endif() add_custom_target(clang-resource-headers ALL DEPENDS ${out_files}) set_target_properties(clang-resource-headers PROPERTIES
Index: clang/lib/Headers/CMakeLists.txt =================================================================== --- clang/lib/Headers/CMakeLists.txt +++ clang/lib/Headers/CMakeLists.txt @@ -206,20 +206,24 @@ endforeach( f ) # Generate header files and copy them to the build directory -# Generate arm_neon.h -clang_generate_header(-gen-arm-neon arm_neon.td arm_neon.h) -# Generate arm_fp16.h -clang_generate_header(-gen-arm-fp16 arm_fp16.td arm_fp16.h) -# Generate arm_sve.h -clang_generate_header(-gen-arm-sve-header arm_sve.td arm_sve.h) -# Generate arm_bf16.h -clang_generate_header(-gen-arm-bf16 arm_bf16.td arm_bf16.h) -# Generate arm_mve.h -clang_generate_header(-gen-arm-mve-header arm_mve.td arm_mve.h) -# Generate arm_cde.h -clang_generate_header(-gen-arm-cde-header arm_cde.td arm_cde.h) -# Generate riscv_vector.h -clang_generate_header(-gen-riscv-vector-header riscv_vector.td riscv_vector.h) +if(ARM IN_LIST LLVM_TARGETS_TO_BUILD OR AArch64 IN_LIST LLVM_TARGETS_TO_BUILD) + # Generate arm_neon.h + clang_generate_header(-gen-arm-neon arm_neon.td arm_neon.h) + # Generate arm_fp16.h + clang_generate_header(-gen-arm-fp16 arm_fp16.td arm_fp16.h) + # Generate arm_sve.h + clang_generate_header(-gen-arm-sve-header arm_sve.td arm_sve.h) + # Generate arm_bf16.h + clang_generate_header(-gen-arm-bf16 arm_bf16.td arm_bf16.h) + # Generate arm_mve.h + clang_generate_header(-gen-arm-mve-header arm_mve.td arm_mve.h) + # Generate arm_cde.h + clang_generate_header(-gen-arm-cde-header arm_cde.td arm_cde.h) +endif() +if(RISCV IN_LIST LLVM_TARGETS_TO_BUILD) + # Generate riscv_vector.h + clang_generate_header(-gen-riscv-vector-header riscv_vector.td riscv_vector.h) +endif() add_custom_target(clang-resource-headers ALL DEPENDS ${out_files}) set_target_properties(clang-resource-headers PROPERTIES
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits