Skip to content

Commit 585c617

Browse files
Slim down the LLVM builds (#281)
* Slim down the LLVM builds Disable lots of tools and features that we don't need for Halide buildbots. On my Mac, this drops the install dir from ~6GB to ~2GB, and the compressed size from ~1.5GB to ~0.5GB. * Update master.cfg * Update master.cfg * Update master.cfg
1 parent 3d55d32 commit 585c617

File tree

1 file changed

+155
-13
lines changed

1 file changed

+155
-13
lines changed

master/master.cfg

Lines changed: 155 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -722,31 +722,173 @@ def get_cmake_build_command(builder_type, build_dir, targets=None):
722722
return cmd
723723

724724

725+
# options in LLVM that we always want OFF because they aren't needed
726+
# for Halide buildbot usage.
727+
_LLVM_OFF_OPTS = [
728+
"CLANG_ENABLE_ARCMT"
729+
"CLANG_ENABLE_CLANGD"
730+
"CLANG_ENABLE_STATIC_ANALYZER"
731+
"CLANG_INCLUDE_DOCS"
732+
"CLANG_INSTALL_SCANBUILD"
733+
"CLANG_INSTALL_SCANVIEW"
734+
"CLANG_PLUGIN_SUPPORT"
735+
"CLANG_TIDY_ENABLE_STATIC_ANALYZER"
736+
"CLANG_TOOL_APINOTES_TEST_BUILD"
737+
"CLANG_TOOL_ARCMT_TEST_BUILD"
738+
"CLANG_TOOL_C_ARCMT_TEST_BUILD"
739+
"CLANG_TOOL_C_INDEX_TEST_BUILD"
740+
"CLANG_TOOL_CLANG_CHECK_BUILD"
741+
"CLANG_TOOL_CLANG_DIFF_BUILD"
742+
"CLANG_TOOL_CLANG_EXTDEF_MAPPING_BUILD"
743+
"CLANG_TOOL_CLANG_FORMAT_BUILD"
744+
"CLANG_TOOL_CLANG_FORMAT_VS_BUILD"
745+
"CLANG_TOOL_CLANG_FUZZER_BUILD"
746+
"CLANG_TOOL_CLANG_IMPORT_TEST_BUILD"
747+
"CLANG_TOOL_CLANG_LINKER_WRAPPER_BUILD"
748+
"CLANG_TOOL_CLANG_OFFLOAD_BUNDLER_BUILD"
749+
"CLANG_TOOL_CLANG_OFFLOAD_PACKAGER_BUILD"
750+
"CLANG_TOOL_CLANG_REFACTOR_BUILD"
751+
"CLANG_TOOL_CLANG_RENAME_BUILD"
752+
"CLANG_TOOL_CLANG_REPL_BUILD"
753+
"CLANG_TOOL_CLANG_SCAN_DEPS_BUILD"
754+
"CLANG_TOOL_CLANG_SHLIB_BUILD"
755+
"CLANG_TOOL_DIAGTOOL_BUILD"
756+
"CLANG_TOOL_DICTIONARY_BUILD"
757+
"CLANG_TOOL_LIBCLANG_BUILD"
758+
"CLANG_TOOL_NVPTX_ARCH_BUILD"
759+
"CLANG_TOOL_SCAN_BUILD_BUILD"
760+
"CLANG_TOOL_SCAN_BUILD_PY_BUILD"
761+
"CLANG_TOOL_SCAN_VIEW_BUILD"
762+
"CLANG_TOOLS_EXTRA_INCLUDE_DOCS"
763+
"LLVM_BUILD_UTILS"
764+
"LLVM_ENABLE_BINDINGS"
765+
"LLVM_ENABLE_CURL"
766+
"LLVM_ENABLE_DIA_SDK"
767+
"LLVM_ENABLE_HTTPLIB"
768+
"LLVM_ENABLE_IDE"
769+
"LLVM_ENABLE_LIBXML2"
770+
"LLVM_ENABLE_OCAMLDOC"
771+
"LLVM_ENABLE_PLUGINS"
772+
"LLVM_ENABLE_TERMINFO"
773+
"LLVM_ENABLE_WARNINGS"
774+
"LLVM_ENABLE_ZSTD",
775+
"LLVM_INCLUDE_BENCHMARKS"
776+
"LLVM_INCLUDE_DOCS"
777+
"LLVM_INCLUDE_EXAMPLES"
778+
"LLVM_INCLUDE_TESTS"
779+
"LLVM_INCLUDE_UTILS"
780+
"LLVM_TOOL_BUGPOINT_BUILD"
781+
"LLVM_TOOL_BUGPOINT_PASSES_BUILD"
782+
"LLVM_TOOL_DSYMUTIL_BUILD"
783+
"LLVM_TOOL_DXIL_DIS_BUILD"
784+
"LLVM_TOOL_GOLD_BUILD"
785+
"LLVM_TOOL_LLC_BUILD"
786+
"LLVM_TOOL_LLI_BUILD"
787+
"LLVM_TOOL_LLVM_AR_BUILD"
788+
# "LLVM_TOOL_LLVM_AS_BUILD" -- no: ClangConfig.cmake needs this
789+
# "LLVM_TOOL_LLVM_AS_FUZZER_BUILD" -- no: ClangConfig.cmake needs this
790+
"LLVM_TOOL_LLVM_BCANALYZER_BUILD"
791+
"LLVM_TOOL_LLVM_C_TEST_BUILD"
792+
"LLVM_TOOL_LLVM_CAT_BUILD"
793+
"LLVM_TOOL_LLVM_CFI_VERIFY_BUILD"
794+
"LLVM_TOOL_LLVM_COV_BUILD"
795+
"LLVM_TOOL_LLVM_CVTRES_BUILD"
796+
"LLVM_TOOL_LLVM_CXXDUMP_BUILD"
797+
"LLVM_TOOL_LLVM_CXXFILT_BUILD"
798+
"LLVM_TOOL_LLVM_CXXMAP_BUILD"
799+
"LLVM_TOOL_LLVM_DEBUGINFO_ANALYZER_BUILD"
800+
"LLVM_TOOL_LLVM_DEBUGINFOD_BUILD"
801+
"LLVM_TOOL_LLVM_DEBUGINFOD_FIND_BUILD"
802+
"LLVM_TOOL_LLVM_DIFF_BUILD"
803+
"LLVM_TOOL_LLVM_DIS_BUILD"
804+
"LLVM_TOOL_LLVM_DIS_FUZZER_BUILD"
805+
"LLVM_TOOL_LLVM_DLANG_DEMANGLE_FUZZER_BUILD"
806+
"LLVM_TOOL_LLVM_DWARFDUMP_BUILD"
807+
"LLVM_TOOL_LLVM_DWARFUTIL_BUILD"
808+
"LLVM_TOOL_LLVM_DWP_BUILD"
809+
"LLVM_TOOL_LLVM_EXEGESIS_BUILD"
810+
"LLVM_TOOL_LLVM_EXTRACT_BUILD"
811+
"LLVM_TOOL_LLVM_GSYMUTIL_BUILD"
812+
"LLVM_TOOL_LLVM_IFS_BUILD"
813+
"LLVM_TOOL_LLVM_ISEL_FUZZER_BUILD"
814+
"LLVM_TOOL_LLVM_ITANIUM_DEMANGLE_FUZZER_BUILD"
815+
"LLVM_TOOL_LLVM_JITLINK_BUILD"
816+
"LLVM_TOOL_LLVM_JITLISTENER_BUILD"
817+
"LLVM_TOOL_LLVM_LIBTOOL_DARWIN_BUILD"
818+
"LLVM_TOOL_LLVM_LINK_BUILD"
819+
"LLVM_TOOL_LLVM_LIPO_BUILD"
820+
"LLVM_TOOL_LLVM_LTO2_BUILD"
821+
"LLVM_TOOL_LLVM_LTO_BUILD"
822+
"LLVM_TOOL_LLVM_MC_ASSEMBLE_FUZZER_BUILD"
823+
"LLVM_TOOL_LLVM_MC_BUILD"
824+
"LLVM_TOOL_LLVM_MC_DISASSEMBLE_FUZZER_BUILD"
825+
"LLVM_TOOL_LLVM_MCA_BUILD"
826+
"LLVM_TOOL_LLVM_MICROSOFT_DEMANGLE_FUZZER_BUILD"
827+
"LLVM_TOOL_LLVM_ML_BUILD"
828+
"LLVM_TOOL_LLVM_MODEXTRACT_BUILD"
829+
"LLVM_TOOL_LLVM_MT_BUILD"
830+
"LLVM_TOOL_LLVM_NM_BUILD"
831+
"LLVM_TOOL_LLVM_OBJCOPY_BUILD"
832+
"LLVM_TOOL_LLVM_OBJDUMP_BUILD"
833+
"LLVM_TOOL_LLVM_OPT_FUZZER_BUILD"
834+
"LLVM_TOOL_LLVM_OPT_REPORT_BUILD"
835+
"LLVM_TOOL_LLVM_PDBUTIL_BUILD"
836+
"LLVM_TOOL_LLVM_PROFDATA_BUILD"
837+
"LLVM_TOOL_LLVM_PROFGEN_BUILD"
838+
"LLVM_TOOL_LLVM_RC_BUILD"
839+
"LLVM_TOOL_LLVM_READOBJ_BUILD"
840+
"LLVM_TOOL_LLVM_READTAPI_BUILD"
841+
"LLVM_TOOL_LLVM_REDUCE_BUILD"
842+
"LLVM_TOOL_LLVM_REMARKUTIL_BUILD"
843+
"LLVM_TOOL_LLVM_RTDYLD_BUILD"
844+
"LLVM_TOOL_LLVM_RUST_DEMANGLE_FUZZER_BUILD"
845+
"LLVM_TOOL_LLVM_SHLIB_BUILD"
846+
"LLVM_TOOL_LLVM_SIM_BUILD"
847+
"LLVM_TOOL_LLVM_SIZE_BUILD"
848+
"LLVM_TOOL_LLVM_SPECIAL_CASE_LIST_FUZZER_BUILD"
849+
"LLVM_TOOL_LLVM_SPLIT_BUILD"
850+
"LLVM_TOOL_LLVM_STRESS_BUILD"
851+
"LLVM_TOOL_LLVM_STRINGS_BUILD"
852+
"LLVM_TOOL_LLVM_SYMBOLIZER_BUILD"
853+
"LLVM_TOOL_LLVM_TLI_CHECKER_BUILD"
854+
"LLVM_TOOL_LLVM_UNDNAME_BUILD"
855+
"LLVM_TOOL_LLVM_XRAY_BUILD"
856+
"LLVM_TOOL_LLVM_YAML_NUMERIC_PARSER_FUZZER_BUILD"
857+
"LLVM_TOOL_LLVM_YAML_PARSER_FUZZER_BUILD"
858+
"LLVM_TOOL_LTO_BUILD"
859+
"LLVM_TOOL_MLIR_BUILD"
860+
"LLVM_TOOL_OBJ2YAML_BUILD"
861+
"LLVM_TOOL_OPENMP_BUILD"
862+
"LLVM_TOOL_OPT_BUILD"
863+
"LLVM_TOOL_OPT_VIEWER_BUILD"
864+
"LLVM_TOOL_POLLY_BUILD"
865+
"LLVM_TOOL_PSTL_BUILD"
866+
"LLVM_TOOL_REMARKS_SHLIB_BUILD"
867+
"LLVM_TOOL_SANCOV_BUILD"
868+
"LLVM_TOOL_SANSTATS_BUILD"
869+
"LLVM_TOOL_SPIRV_TOOLS_BUILD"
870+
"LLVM_TOOL_VERIFY_USELISTORDER_BUILD"
871+
"LLVM_TOOL_VFABI_DEMANGLE_FUZZER_BUILD"
872+
"LLVM_TOOL_XCODE_TOOLCHAIN_BUILD"
873+
"LLVM_TOOL_YAML2OBJ_BUILD"
874+
]
875+
876+
725877
def get_llvm_cmake_definitions(builder_type):
726878
# Keep sorted!
727879
definitions = {
728880
'CMAKE_BUILD_TYPE': 'Release',
729881
'CMAKE_INSTALL_PREFIX': get_llvm_install_path(builder_type),
730882
'LLVM_BUILD_32_BITS': ('ON' if builder_type.bits == 32 else 'OFF'),
731883
'LLVM_ENABLE_ASSERTIONS': 'ON',
732-
'LLVM_ENABLE_BINDINGS': 'OFF',
733-
'LLVM_ENABLE_CURL': 'OFF',
734-
'LLVM_ENABLE_DIA_SDK': 'OFF',
735-
'LLVM_ENABLE_HTTPLIB': 'OFF',
736-
'LLVM_ENABLE_IDE': 'OFF',
737-
'LLVM_ENABLE_LIBXML2': 'OFF',
738-
'LLVM_ENABLE_OCAMLDOC': 'OFF',
739884
'LLVM_ENABLE_RTTI': 'ON',
740-
'LLVM_ENABLE_TERMINFO': 'OFF',
741-
'LLVM_ENABLE_WARNINGS': 'OFF', # silence them, it's not like we're gonna fix them
742885
'LLVM_ENABLE_ZLIB': 'ON',
743-
'LLVM_ENABLE_ZSTD': 'OFF',
744-
'LLVM_INCLUDE_BENCHMARKS': 'OFF',
745-
'LLVM_INCLUDE_EXAMPLES': 'OFF',
746-
'LLVM_INCLUDE_TESTS': 'OFF',
747886
'LLVM_TARGETS_TO_BUILD': 'X86;ARM;NVPTX;AArch64;Hexagon;PowerPC;WebAssembly',
748887
}
749888

889+
for off in _LLVM_OFF_OPTS:
890+
definitions[off] = 'OFF'
891+
750892
if builder_type.bits == 32:
751893
definitions['CMAKE_FIND_ROOT_PATH_MODE_INCLUDE'] = "ONLY"
752894
definitions['CMAKE_FIND_ROOT_PATH_MODE_LIBRARY'] = "ONLY"

0 commit comments

Comments
 (0)