diff --git a/contrib/llvm-project/lld/tools/lld/lld.cpp b/contrib/llvm-project/lld/tools/lld/lld.cpp index d30362ba7826..8827a883ceb6 100644 --- a/contrib/llvm-project/lld/tools/lld/lld.cpp +++ b/contrib/llvm-project/lld/tools/lld/lld.cpp @@ -1,238 +1,239 @@ //===- tools/lld/lld.cpp - Linker Driver Dispatcher -----------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file contains the main function of the lld executable. The main // function is a thin wrapper which dispatches to the platform specific // driver. // // lld is a single executable that contains four different linkers for ELF, // COFF, WebAssembly and Mach-O. The main function dispatches according to // argv[0] (i.e. command name). The most common name for each target is shown // below: // // - ld.lld: ELF (Unix) // - ld64: Mach-O (macOS) // - lld-link: COFF (Windows) // - ld-wasm: WebAssembly // // lld can be invoked as "lld" along with "-flavor" option. This is for // backward compatibility and not recommended. // //===----------------------------------------------------------------------===// #include "lld/Common/Driver.h" #include "lld/Common/ErrorHandler.h" #include "lld/Common/Memory.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringSwitch.h" #include "llvm/ADT/Triple.h" #include "llvm/ADT/Twine.h" #include "llvm/Support/CommandLine.h" #include "llvm/Support/CrashRecoveryContext.h" #include "llvm/Support/Host.h" #include "llvm/Support/InitLLVM.h" #include "llvm/Support/Path.h" #include "llvm/Support/PluginLoader.h" #include "llvm/Support/Signals.h" #include #if !defined(_MSC_VER) && !defined(__MINGW32__) #include // for raise #include // for _exit #endif using namespace lld; using namespace llvm; using namespace llvm::sys; enum Flavor { Invalid, Gnu, // -flavor gnu WinLink, // -flavor link Darwin, // -flavor darwin DarwinNew, // -flavor darwinnew Wasm, // -flavor wasm }; LLVM_ATTRIBUTE_NORETURN static void die(const Twine &s) { llvm::errs() << s << "\n"; exit(1); } static Flavor getFlavor(StringRef s) { return StringSwitch(s) .CasesLower("ld", "ld.lld", "gnu", Gnu) .CasesLower("wasm", "ld-wasm", Wasm) .CaseLower("link", WinLink) .CasesLower("ld64", "ld64.lld", "darwin", Darwin) .CasesLower("darwinnew", "ld64.lld.darwinnew", DarwinNew) .Default(Invalid); } static cl::TokenizerCallback getDefaultQuotingStyle() { if (Triple(sys::getProcessTriple()).getOS() == Triple::Win32) return cl::TokenizeWindowsCommandLine; return cl::TokenizeGNUCommandLine; } static bool isPETargetName(StringRef s) { return s == "i386pe" || s == "i386pep" || s == "thumb2pe" || s == "arm64pe"; } static bool isPETarget(std::vector &v) { for (auto it = v.begin(); it + 1 != v.end(); ++it) { if (StringRef(*it) != "-m") continue; return isPETargetName(*(it + 1)); } // Expand response files (arguments in the form of @) // to allow detecting the -m argument from arguments in them. SmallVector expandedArgs(v.data(), v.data() + v.size()); cl::ExpandResponseFiles(saver, getDefaultQuotingStyle(), expandedArgs); for (auto it = expandedArgs.begin(); it + 1 != expandedArgs.end(); ++it) { if (StringRef(*it) != "-m") continue; return isPETargetName(*(it + 1)); } #ifdef LLD_DEFAULT_LD_LLD_IS_MINGW return true; #else return false; #endif } static Flavor parseProgname(StringRef progname) { // Use GNU driver for "ld" by default. if (progname == "ld") return Gnu; // Progname may be something like "lld-gnu". Parse it. SmallVector v; progname.split(v, "-"); for (StringRef s : v) if (Flavor f = getFlavor(s)) return f; return Invalid; } static Flavor parseFlavor(std::vector &v) { // Parse -flavor option. if (v.size() > 1 && v[1] == StringRef("-flavor")) { if (v.size() <= 2) die("missing arg value for '-flavor'"); Flavor f = getFlavor(v[2]); if (f == Invalid) die("Unknown flavor: " + StringRef(v[2])); v.erase(v.begin() + 1, v.begin() + 3); return f; } // Deduct the flavor from argv[0]. StringRef arg0 = path::filename(v[0]); if (arg0.endswith_lower(".exe")) arg0 = arg0.drop_back(4); return parseProgname(arg0); } /// Universal linker main(). This linker emulates the gnu, darwin, or /// windows linker based on the argv[0] or -flavor option. static int lldMain(int argc, const char **argv, llvm::raw_ostream &stdoutOS, llvm::raw_ostream &stderrOS, bool exitEarly = true) { std::vector args(argv, argv + argc); -#ifdef __FreeBSD__ +#if 1 + /* On FreeBSD we only build the ELF linker. */ return !elf::link(args, exitEarly, stdoutOS, stderrOS); #else switch (parseFlavor(args)) { case Gnu: if (isPETarget(args)) return !mingw::link(args, exitEarly, stdoutOS, stderrOS); return !elf::link(args, exitEarly, stdoutOS, stderrOS); case WinLink: return !coff::link(args, exitEarly, stdoutOS, stderrOS); case Darwin: return !mach_o::link(args, exitEarly, stdoutOS, stderrOS); case DarwinNew: return !macho::link(args, exitEarly, stdoutOS, stderrOS); case Wasm: return !lld::wasm::link(args, exitEarly, stdoutOS, stderrOS); default: die("lld is a generic driver.\n" "Invoke ld.lld (Unix), ld64.lld (macOS), lld-link (Windows), wasm-ld" " (WebAssembly) instead"); } #endif } // Similar to lldMain except that exceptions are caught. SafeReturn lld::safeLldMain(int argc, const char **argv, llvm::raw_ostream &stdoutOS, llvm::raw_ostream &stderrOS) { int r = 0; { // The crash recovery is here only to be able to recover from arbitrary // control flow when fatal() is called (through setjmp/longjmp or // __try/__except). llvm::CrashRecoveryContext crc; if (!crc.RunSafely([&]() { r = lldMain(argc, argv, stdoutOS, stderrOS, /*exitEarly=*/false); })) return {crc.RetCode, /*canRunAgain=*/false}; } // Cleanup memory and reset everything back in pristine condition. This path // is only taken when LLD is in test, or when it is used as a library. llvm::CrashRecoveryContext crc; if (!crc.RunSafely([&]() { errorHandler().reset(); })) { // The memory is corrupted beyond any possible recovery. return {r, /*canRunAgain=*/false}; } return {r, /*canRunAgain=*/true}; } // When in lit tests, tells how many times the LLD tool should re-execute the // main loop with the same inputs. When not in test, returns a value of 0 which // signifies that LLD shall not release any memory after execution, to speed up // process destruction. static unsigned inTestVerbosity() { unsigned v = 0; StringRef(getenv("LLD_IN_TEST")).getAsInteger(10, v); return v; } int main(int argc, const char **argv) { InitLLVM x(argc, argv); // Not running in lit tests, just take the shortest codepath with global // exception handling and no memory cleanup on exit. if (!inTestVerbosity()) return lldMain(argc, argv, llvm::outs(), llvm::errs()); Optional mainRet; CrashRecoveryContext::Enable(); for (unsigned i = inTestVerbosity(); i > 0; --i) { // Disable stdout/stderr for all iterations but the last one. if (i != 1) errorHandler().disableOutput = true; // Execute one iteration. auto r = safeLldMain(argc, argv, llvm::outs(), llvm::errs()); if (!r.canRunAgain) exitLld(r.ret); // Exit now, can't re-execute again. if (!mainRet) { mainRet = r.ret; } else if (r.ret != *mainRet) { // Exit now, to fail the tests if the result is different between runs. return r.ret; } } return *mainRet; } diff --git a/lib/clang/include/llvm/Config/config.h b/lib/clang/include/llvm/Config/config.h index 0cd6dabeab17..35ce8c189d2b 100644 --- a/lib/clang/include/llvm/Config/config.h +++ b/lib/clang/include/llvm/Config/config.h @@ -1,356 +1,400 @@ /* $FreeBSD$ */ #ifndef CONFIG_H #define CONFIG_H // Include this header only under the llvm source tree. // This is a private header. /* Exported configuration */ #include "llvm/Config/llvm-config.h" /* Bug report URL. */ #define BUG_REPORT_URL "https://bugs.freebsd.org/submit/" /* Define to 1 to enable backtraces, and to 0 otherwise. */ #define ENABLE_BACKTRACES 1 /* Define to 1 to enable crash overrides, and to 0 otherwise. */ #define ENABLE_CRASH_OVERRIDES 1 /* Define to 1 to enable crash memory dumps, and to 0 otherwise. */ #define LLVM_ENABLE_CRASH_DUMPS 0 /* Define to 1 if you have the `backtrace' function. */ #define HAVE_BACKTRACE TRUE #define BACKTRACE_HEADER /* Define to 1 if you have the header file. */ /* #undef HAVE_CRASHREPORTERCLIENT_H */ /* can use __crashreporter_info__ */ +#if defined(__APPLE__) +#define HAVE_CRASHREPORTER_INFO 1 +#else #define HAVE_CRASHREPORTER_INFO 0 +#endif /* Define to 1 if you have the declaration of `arc4random', and to 0 if you don't. */ #define HAVE_DECL_ARC4RANDOM 1 /* Define to 1 if you have the declaration of `FE_ALL_EXCEPT', and to 0 if you don't. */ #define HAVE_DECL_FE_ALL_EXCEPT 1 /* Define to 1 if you have the declaration of `FE_INEXACT', and to 0 if you don't. */ #define HAVE_DECL_FE_INEXACT 1 /* Define to 1 if you have the declaration of `strerror_s', and to 0 if you don't. */ #define HAVE_DECL_STRERROR_S 0 /* Define to 1 if you have the DIA SDK installed, and to 0 if you don't. */ #define LLVM_ENABLE_DIA_SDK 0 /* Define to 1 if you have the header file. */ #define HAVE_DLFCN_H 1 /* Define if dlopen() is available on this platform. */ #define HAVE_DLOPEN 1 /* Define if dladdr() is available on this platform. */ #define HAVE_DLADDR 1 #if !defined(__arm__) || defined(__USING_SJLJ_EXCEPTIONS__) || defined(__ARM_DWARF_EH__) /* Define to 1 if we can register EH frames on this platform. */ #define HAVE_REGISTER_FRAME 1 /* Define to 1 if we can deregister EH frames on this platform. */ #define HAVE_DEREGISTER_FRAME 1 #endif // !arm || USING_SJLJ_EXCEPTIONS || ARM_DWARF_EH_ /* Define to 1 if you have the header file. */ #define HAVE_ERRNO_H 1 /* Define to 1 if you have the header file. */ #define HAVE_FCNTL_H 1 /* Define to 1 if you have the header file. */ #define HAVE_FENV_H 1 /* Define if libffi is available on this platform. */ /* #undef HAVE_FFI_CALL */ /* Define to 1 if you have the header file. */ /* #undef HAVE_FFI_FFI_H */ /* Define to 1 if you have the header file. */ /* #undef HAVE_FFI_H */ /* Define to 1 if you have the `futimens' function. */ #define HAVE_FUTIMENS 1 /* Define to 1 if you have the `futimes' function. */ #define HAVE_FUTIMES 1 /* Define to 1 if you have the `getpagesize' function. */ #define HAVE_GETPAGESIZE 1 /* Define to 1 if you have the `getrlimit' function. */ #define HAVE_GETRLIMIT 1 /* Define to 1 if you have the `getrusage' function. */ #define HAVE_GETRUSAGE 1 /* Define to 1 if you have the `isatty' function. */ #define HAVE_ISATTY 1 /* Define to 1 if you have the `edit' library (-ledit). */ #define HAVE_LIBEDIT 1 /* Define to 1 if you have the `pfm' library (-lpfm). */ /* #undef HAVE_LIBPFM */ /* Define to 1 if the `perf_branch_entry' struct has field cycles. */ /* #undef LIBPFM_HAS_FIELD_CYCLES */ /* Define to 1 if you have the `psapi' library (-lpsapi). */ /* #undef HAVE_LIBPSAPI */ /* Define to 1 if you have the `pthread' library (-lpthread). */ #define HAVE_LIBPTHREAD 1 /* Define to 1 if you have the `pthread_getname_np' function. */ #define HAVE_PTHREAD_GETNAME_NP 1 /* Define to 1 if you have the `pthread_setname_np' function. */ #define HAVE_PTHREAD_SETNAME_NP 1 /* Define to 1 if you have the header file. */ +#if __has_include() #define HAVE_LINK_H 1 +#else +#define HAVE_LINK_H 0 +#endif /* Define to 1 if you have the `lseek64' function. */ -/* #undef HAVE_LSEEK64 */ +#if defined(__linux__) +#define HAVE_LSEEK64 1 +#endif /* Define to 1 if you have the header file. */ -/* #undef HAVE_MACH_MACH_H */ +#if __has_include() +#define HAVE_MACH_MACH_H 1 +#endif /* Define to 1 if you have the `mallctl' function. */ +#if defined(__FreeBSD__) #define HAVE_MALLCTL 1 +#endif /* Define to 1 if you have the `mallinfo' function. */ -/* #undef HAVE_MALLINFO */ +#if defined(__linux__) +#define HAVE_MALLINFO 1 +#endif /* Define to 1 if you have the header file. */ -/* #undef HAVE_MALLOC_MALLOC_H */ +#if __has_include() +#define HAVE_MALLOC_MALLOC_H 1 +#endif /* Define to 1 if you have the `malloc_zone_statistics' function. */ -/* #undef HAVE_MALLOC_ZONE_STATISTICS */ +#if defined(__APPLE__) +#define HAVE_MALLOC_ZONE_STATISTICS 1 +#endif /* Define to 1 if you have the `posix_fallocate' function. */ +#if !defined(__APPLE__) #define HAVE_POSIX_FALLOCATE 1 +#endif /* Define to 1 if you have the `posix_spawn' function. */ #define HAVE_POSIX_SPAWN 1 /* Define to 1 if you have the `pread' function. */ #define HAVE_PREAD 1 /* Have pthread_getspecific */ #define HAVE_PTHREAD_GETSPECIFIC 1 /* Define to 1 if you have the header file. */ #define HAVE_PTHREAD_H 1 /* Have pthread_mutex_lock */ #define HAVE_PTHREAD_MUTEX_LOCK 1 /* Have pthread_rwlock_init */ #define HAVE_PTHREAD_RWLOCK_INIT 1 /* Define to 1 if you have the `sbrk' function. */ #define HAVE_SBRK 1 /* Define to 1 if you have the `setenv' function. */ #define HAVE_SETENV 1 /* Define to 1 if you have the `setrlimit' function. */ #define HAVE_SETRLIMIT 1 /* Define to 1 if you have the `sigaltstack' function. */ #define HAVE_SIGALTSTACK 1 /* Define to 1 if you have the header file. */ #define HAVE_SIGNAL_H 1 /* Define to 1 if you have the `strerror' function. */ #define HAVE_STRERROR 1 /* Define to 1 if you have the `strerror_r' function. */ #define HAVE_STRERROR_R 1 /* Define to 1 if you have the `sysconf' function. */ #define HAVE_SYSCONF 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_IOCTL_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_MMAN_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_PARAM_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_RESOURCE_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_STAT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_TIME_H 1 /* Define to 1 if stat struct has st_mtimespec member .*/ +#if !defined(__linux__) #define HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC 1 +#endif /* Define to 1 if stat struct has st_mtim member. */ +#if !defined(__APPLE__) #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1 +#endif /* Define to 1 if you have the header file. */ #define HAVE_SYS_TYPES_H 1 /* Define if the setupterm() function is supported this platform. */ +#if defined(__FreeBSD__) +/* + * This is only needed for terminalHasColors(). When disabled LLVM falls back + * to checking a list of TERM prefixes which is sufficient for a bootstrap tool. + */ #define LLVM_ENABLE_TERMINFO 1 +#endif /* Define if the xar_open() function is supported this platform. */ -/* #undef HAVE_LIBXAR */ +#if defined(__APPLE__) +#define HAVE_LIBXAR +#endif /* Define to 1 if you have the header file. */ #define HAVE_TERMIOS_H 1 /* Define to 1 if you have the header file. */ #define HAVE_UNISTD_H 1 /* Define to 1 if you have the header file. */ /* #undef HAVE_VALGRIND_VALGRIND_H */ /* Have host's _alloca */ /* #undef HAVE__ALLOCA */ /* Define to 1 if you have the `_chsize_s' function. */ /* #undef HAVE__CHSIZE_S */ /* Define to 1 if you have the `_Unwind_Backtrace' function. */ -/* #undef HAVE__UNWIND_BACKTRACE */ +#if !defined(__FreeBSD__) +#define HAVE__UNWIND_BACKTRACE 1 +#endif /* Have host's __alloca */ /* #undef HAVE___ALLOCA */ /* Have host's __ashldi3 */ /* #undef HAVE___ASHLDI3 */ /* Have host's __ashrdi3 */ /* #undef HAVE___ASHRDI3 */ /* Have host's __chkstk */ /* #undef HAVE___CHKSTK */ /* Have host's __chkstk_ms */ /* #undef HAVE___CHKSTK_MS */ /* Have host's __cmpdi2 */ /* #undef HAVE___CMPDI2 */ /* Have host's __divdi3 */ /* #undef HAVE___DIVDI3 */ /* Have host's __fixdfdi */ /* #undef HAVE___FIXDFDI */ /* Have host's __fixsfdi */ /* #undef HAVE___FIXSFDI */ /* Have host's __floatdidf */ /* #undef HAVE___FLOATDIDF */ /* Have host's __lshrdi3 */ /* #undef HAVE___LSHRDI3 */ /* Have host's __main */ /* #undef HAVE___MAIN */ /* Have host's __moddi3 */ /* #undef HAVE___MODDI3 */ /* Have host's __udivdi3 */ /* #undef HAVE___UDIVDI3 */ /* Have host's __umoddi3 */ /* #undef HAVE___UMODDI3 */ /* Have host's ___chkstk */ /* #undef HAVE____CHKSTK */ /* Have host's ___chkstk_ms */ /* #undef HAVE____CHKSTK_MS */ /* Linker version detected at compile time. */ /* #undef HOST_LINK_VERSION */ /* Target triple LLVM will generate code for by default */ /* Doesn't use `cmakedefine` because it is allowed to be empty. */ /* #undef LLVM_DEFAULT_TARGET_TRIPLE */ /* Define if zlib compression is available */ #define LLVM_ENABLE_ZLIB 1 /* Define if overriding target triple is enabled */ /* #undef LLVM_TARGET_TRIPLE_ENV */ /* LLVM version information */ /* #undef LLVM_VERSION_INFO */ /* Whether tools show host and target info when invoked with --version */ #define LLVM_VERSION_PRINTER_SHOW_HOST_TARGET_INFO 1 /* Define if libxml2 is supported on this platform. */ /* #undef LLVM_LIBXML2_ENABLED */ /* Define to the extension used for shared libraries, say, ".so". */ +#if defined(__APPLE__) +#define LTDL_SHLIB_EXT ".dylib" +#else #define LTDL_SHLIB_EXT ".so" +#endif /* Define to the address where bug reports for this package should be sent. */ #define PACKAGE_BUGREPORT "https://bugs.freebsd.org/submit/" /* Define to the full name of this package. */ #define PACKAGE_NAME "LLVM" /* Define to the full name and version of this package. */ #define PACKAGE_STRING "LLVM 12.0.1" /* Define to the version of this package. */ #define PACKAGE_VERSION "12.0.1" /* Define to the vendor of this package. */ /* #undef PACKAGE_VENDOR */ /* Define as the return type of signal handlers (`int' or `void'). */ #define RETSIGTYPE void /* Define if std::is_trivially_copyable is supported */ #define HAVE_STD_IS_TRIVIALLY_COPYABLE 1 /* Define to a function implementing stricmp */ /* #undef stricmp */ /* Define to a function implementing strdup */ /* #undef strdup */ /* Whether GlobalISel rule coverage is being collected */ #define LLVM_GISEL_COV_ENABLED 0 /* Define to the default GlobalISel coverage file prefix */ /* #undef LLVM_GISEL_COV_PREFIX */ /* Whether Timers signpost passes in Xcode Instruments */ +#if defined(__APPLE__) +#define LLVM_SUPPORT_XCODE_SIGNPOSTS 1 +#else #define LLVM_SUPPORT_XCODE_SIGNPOSTS 0 +#endif #endif diff --git a/lib/clang/libllvm/Makefile b/lib/clang/libllvm/Makefile index 85440f467a18..09d6336c01d9 100644 --- a/lib/clang/libllvm/Makefile +++ b/lib/clang/libllvm/Makefile @@ -1,1932 +1,1933 @@ # $FreeBSD$ .include .include "../llvm.pre.mk" LIB= llvm INTERNALLIB= CFLAGS+= -I${.OBJDIR} .if ${MK_LLVM_TARGET_AARCH64} == "no" && ${MK_LLVM_TARGET_ARM} == "no" && \ ${MK_LLVM_TARGET_BPF} == "no" && ${MK_LLVM_TARGET_MIPS} == "no" && \ ${MK_LLVM_TARGET_POWERPC} == "no" && ${MK_LLVM_TARGET_RISCV} == "no" && \ ${MK_LLVM_TARGET_X86} == "no" .error Please enable at least one of: MK_LLVM_TARGET_AARCH64,\ MK_LLVM_TARGET_ARM, MK_LLVM_TARGET_BPF, MK_LLVM_TARGET_MIPS, \ MK_LLVM_TARGET_POWERPC, MK_LLVM_TARGET_RISCV, or MK_LLVM_TARGET_X86 .endif .for arch in AArch64 ARM BPF Mips PowerPC RISCV X86 . if ${MK_LLVM_TARGET_${arch:tu}} != "no" CFLAGS+= -I${LLVM_SRCS}/lib/Target/${arch} . endif .endfor SRCDIR= llvm/lib # Explanation of different SRCS variants below: # SRCS_MIN: always required, even for bootstrap # SRCS_MIW: required for world stage (after cross-tools) # SRCS_EXT: required for MK_CLANG_EXTRAS # SRCS_EXL: required for MK_CLANG_EXTRAS and MK_LLD # SRCS_FUL: required for MK_CLANG_FULL # SRCS_LLD: required for MK_LLD # SRCS_XDB: required for MK_CLANG_EXTRAS and MK_LLDB # SRCS_XDL: required for MK_CLANG_EXTRAS, MK_LLD and MK_LLDB # SRCS_XDW: required for MK_CLANG_EXTRAS and MK_LLDB in world stage SRCS_MIN+= Analysis/AliasAnalysis.cpp SRCS_MIN+= Analysis/AliasAnalysisEvaluator.cpp SRCS_MIN+= Analysis/AliasAnalysisSummary.cpp SRCS_MIN+= Analysis/AliasSetTracker.cpp SRCS_EXT+= Analysis/Analysis.cpp SRCS_MIN+= Analysis/AssumeBundleQueries.cpp SRCS_MIN+= Analysis/AssumptionCache.cpp SRCS_MIN+= Analysis/BasicAliasAnalysis.cpp SRCS_MIN+= Analysis/BlockFrequencyInfo.cpp SRCS_MIN+= Analysis/BlockFrequencyInfoImpl.cpp SRCS_MIN+= Analysis/BranchProbabilityInfo.cpp SRCS_MIN+= Analysis/CFG.cpp SRCS_MIN+= Analysis/CFGPrinter.cpp SRCS_MIN+= Analysis/CFLAndersAliasAnalysis.cpp SRCS_MIN+= Analysis/CFLSteensAliasAnalysis.cpp SRCS_MIN+= Analysis/CGSCCPassManager.cpp SRCS_MIN+= Analysis/CallGraph.cpp SRCS_MIN+= Analysis/CallGraphSCCPass.cpp SRCS_MIN+= Analysis/CallPrinter.cpp SRCS_MIN+= Analysis/CaptureTracking.cpp SRCS_MIN+= Analysis/CmpInstAnalysis.cpp SRCS_MIN+= Analysis/CodeMetrics.cpp SRCS_MIN+= Analysis/ConstantFolding.cpp SRCS_MIN+= Analysis/ConstraintSystem.cpp SRCS_MIN+= Analysis/CostModel.cpp SRCS_MIN+= Analysis/DDG.cpp SRCS_MIN+= Analysis/DDGPrinter.cpp SRCS_MIN+= Analysis/Delinearization.cpp SRCS_MIN+= Analysis/DemandedBits.cpp SRCS_MIN+= Analysis/DependenceAnalysis.cpp SRCS_MIN+= Analysis/DependenceGraphBuilder.cpp SRCS_MIN+= Analysis/DivergenceAnalysis.cpp SRCS_MIN+= Analysis/DomPrinter.cpp SRCS_MIN+= Analysis/DomTreeUpdater.cpp SRCS_MIN+= Analysis/DominanceFrontier.cpp SRCS_MIN+= Analysis/EHPersonalities.cpp SRCS_MIN+= Analysis/FunctionPropertiesAnalysis.cpp SRCS_MIN+= Analysis/GlobalsModRef.cpp SRCS_MIN+= Analysis/GuardUtils.cpp SRCS_MIN+= Analysis/HeatUtils.cpp SRCS_MIN+= Analysis/IRSimilarityIdentifier.cpp SRCS_MIN+= Analysis/IVDescriptors.cpp SRCS_MIN+= Analysis/IVUsers.cpp SRCS_MIN+= Analysis/ImportedFunctionsInliningStatistics.cpp SRCS_MIN+= Analysis/IndirectCallPromotionAnalysis.cpp SRCS_MIN+= Analysis/InlineAdvisor.cpp SRCS_MIN+= Analysis/InlineCost.cpp SRCS_MIN+= Analysis/InlineSizeEstimatorAnalysis.cpp SRCS_MIN+= Analysis/InstCount.cpp SRCS_MIN+= Analysis/InstructionPrecedenceTracking.cpp SRCS_MIN+= Analysis/InstructionSimplify.cpp SRCS_MIN+= Analysis/Interval.cpp SRCS_MIN+= Analysis/IntervalPartition.cpp SRCS_MIN+= Analysis/LazyBlockFrequencyInfo.cpp SRCS_MIN+= Analysis/LazyBranchProbabilityInfo.cpp SRCS_MIN+= Analysis/LazyCallGraph.cpp SRCS_MIN+= Analysis/LazyValueInfo.cpp SRCS_MIN+= Analysis/LegacyDivergenceAnalysis.cpp SRCS_MIN+= Analysis/Lint.cpp SRCS_MIN+= Analysis/Loads.cpp SRCS_MIN+= Analysis/LoopAccessAnalysis.cpp SRCS_MIN+= Analysis/LoopAnalysisManager.cpp SRCS_MIN+= Analysis/LoopCacheAnalysis.cpp SRCS_MIN+= Analysis/LoopInfo.cpp SRCS_MIN+= Analysis/LoopNestAnalysis.cpp SRCS_MIN+= Analysis/LoopPass.cpp SRCS_MIN+= Analysis/LoopUnrollAnalyzer.cpp SRCS_MIN+= Analysis/MemDepPrinter.cpp SRCS_MIN+= Analysis/MemDerefPrinter.cpp SRCS_MIN+= Analysis/MemoryBuiltins.cpp SRCS_MIN+= Analysis/MemoryDependenceAnalysis.cpp SRCS_MIN+= Analysis/MemoryLocation.cpp SRCS_MIN+= Analysis/MemorySSA.cpp SRCS_MIN+= Analysis/MemorySSAUpdater.cpp SRCS_MIN+= Analysis/ModuleDebugInfoPrinter.cpp SRCS_MIN+= Analysis/ModuleSummaryAnalysis.cpp SRCS_MIN+= Analysis/MustExecute.cpp SRCS_MIN+= Analysis/ObjCARCAliasAnalysis.cpp SRCS_MIN+= Analysis/ObjCARCAnalysisUtils.cpp SRCS_MIN+= Analysis/ObjCARCInstKind.cpp SRCS_MIN+= Analysis/OptimizationRemarkEmitter.cpp SRCS_MIN+= Analysis/PHITransAddr.cpp SRCS_MIN+= Analysis/PhiValues.cpp SRCS_MIN+= Analysis/PostDominators.cpp SRCS_MIN+= Analysis/ProfileSummaryInfo.cpp SRCS_MIN+= Analysis/PtrUseVisitor.cpp SRCS_MIN+= Analysis/RegionInfo.cpp SRCS_MIN+= Analysis/RegionPass.cpp SRCS_MIN+= Analysis/RegionPrinter.cpp SRCS_MIN+= Analysis/ReplayInlineAdvisor.cpp SRCS_MIN+= Analysis/ScalarEvolution.cpp SRCS_MIN+= Analysis/ScalarEvolution.cpp SRCS_MIN+= Analysis/ScalarEvolutionAliasAnalysis.cpp SRCS_MIN+= Analysis/ScalarEvolutionDivision.cpp SRCS_MIN+= Analysis/ScalarEvolutionNormalization.cpp SRCS_MIN+= Analysis/ScopedNoAliasAA.cpp SRCS_MIN+= Analysis/StackLifetime.cpp SRCS_MIN+= Analysis/StackSafetyAnalysis.cpp SRCS_MIN+= Analysis/SyncDependenceAnalysis.cpp SRCS_MIN+= Analysis/SyntheticCountsUtils.cpp SRCS_MIN+= Analysis/TargetLibraryInfo.cpp SRCS_MIN+= Analysis/TargetTransformInfo.cpp SRCS_MIN+= Analysis/TypeBasedAliasAnalysis.cpp SRCS_MIN+= Analysis/TypeMetadataUtils.cpp SRCS_MIN+= Analysis/VFABIDemangling.cpp SRCS_MIN+= Analysis/ValueLattice.cpp SRCS_MIN+= Analysis/ValueLatticeUtils.cpp SRCS_MIN+= Analysis/ValueTracking.cpp SRCS_MIN+= Analysis/VectorUtils.cpp SRCS_MIN+= AsmParser/LLLexer.cpp SRCS_MIN+= AsmParser/LLParser.cpp SRCS_MIN+= AsmParser/Parser.cpp SRCS_MIN+= BinaryFormat/Dwarf.cpp SRCS_MIN+= BinaryFormat/Magic.cpp SRCS_MIN+= BinaryFormat/MachO.cpp SRCS_MIN+= BinaryFormat/Wasm.cpp SRCS_MIN+= BinaryFormat/XCOFF.cpp SRCS_MIN+= Bitcode/Reader/BitReader.cpp SRCS_EXT+= Bitcode/Reader/BitcodeAnalyzer.cpp SRCS_MIN+= Bitcode/Reader/BitcodeReader.cpp SRCS_MIN+= Bitcode/Reader/MetadataLoader.cpp SRCS_MIN+= Bitcode/Reader/ValueList.cpp SRCS_MIN+= Bitcode/Writer/BitcodeWriter.cpp SRCS_MIN+= Bitcode/Writer/BitcodeWriterPass.cpp SRCS_MIN+= Bitcode/Writer/ValueEnumerator.cpp SRCS_MIN+= Bitstream/Reader/BitstreamReader.cpp SRCS_MIN+= CodeGen/AggressiveAntiDepBreaker.cpp SRCS_MIN+= CodeGen/AllocationOrder.cpp SRCS_MIN+= CodeGen/Analysis.cpp SRCS_MIN+= CodeGen/AsmPrinter/AIXException.cpp SRCS_MIN+= CodeGen/AsmPrinter/ARMException.cpp SRCS_MIN+= CodeGen/AsmPrinter/AccelTable.cpp SRCS_MIN+= CodeGen/AsmPrinter/AddressPool.cpp SRCS_MIN+= CodeGen/AsmPrinter/AsmPrinter.cpp SRCS_MIN+= CodeGen/AsmPrinter/AsmPrinterDwarf.cpp SRCS_MIN+= CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp SRCS_MIN+= CodeGen/AsmPrinter/CodeViewDebug.cpp SRCS_MIN+= CodeGen/AsmPrinter/DIE.cpp SRCS_MIN+= CodeGen/AsmPrinter/DIEHash.cpp SRCS_MIN+= CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp SRCS_MIN+= CodeGen/AsmPrinter/DebugHandlerBase.cpp SRCS_MIN+= CodeGen/AsmPrinter/DebugLocStream.cpp SRCS_MIN+= CodeGen/AsmPrinter/DwarfCFIException.cpp SRCS_MIN+= CodeGen/AsmPrinter/DwarfCompileUnit.cpp SRCS_MIN+= CodeGen/AsmPrinter/DwarfDebug.cpp SRCS_MIN+= CodeGen/AsmPrinter/DwarfExpression.cpp SRCS_MIN+= CodeGen/AsmPrinter/DwarfFile.cpp SRCS_MIN+= CodeGen/AsmPrinter/DwarfStringPool.cpp SRCS_MIN+= CodeGen/AsmPrinter/DwarfUnit.cpp SRCS_MIN+= CodeGen/AsmPrinter/EHStreamer.cpp SRCS_EXT+= CodeGen/AsmPrinter/ErlangGCPrinter.cpp SRCS_MIN+= CodeGen/AsmPrinter/OcamlGCPrinter.cpp SRCS_MIN+= CodeGen/AsmPrinter/PseudoProbePrinter.cpp SRCS_MIN+= CodeGen/AsmPrinter/WasmException.cpp SRCS_MIN+= CodeGen/AsmPrinter/WinCFGuard.cpp SRCS_MIN+= CodeGen/AsmPrinter/WinException.cpp SRCS_MIN+= CodeGen/AtomicExpandPass.cpp SRCS_MIN+= CodeGen/BasicBlockSections.cpp SRCS_MIN+= CodeGen/BasicTargetTransformInfo.cpp SRCS_MIN+= CodeGen/BranchFolding.cpp SRCS_MIN+= CodeGen/BranchRelaxation.cpp SRCS_MIN+= CodeGen/BreakFalseDeps.cpp SRCS_EXT+= CodeGen/BuiltinGCs.cpp SRCS_MIN+= CodeGen/CFGuardLongjmp.cpp SRCS_MIN+= CodeGen/CFIInstrInserter.cpp SRCS_MIN+= CodeGen/CalcSpillWeights.cpp SRCS_MIN+= CodeGen/CallingConvLower.cpp SRCS_MIN+= CodeGen/CodeGen.cpp SRCS_MIN+= CodeGen/CodeGenPrepare.cpp SRCS_EXL+= CodeGen/CommandFlags.cpp SRCS_MIN+= CodeGen/CriticalAntiDepBreaker.cpp SRCS_MIN+= CodeGen/DFAPacketizer.cpp SRCS_MIN+= CodeGen/DeadMachineInstructionElim.cpp SRCS_MIN+= CodeGen/DetectDeadLanes.cpp SRCS_MIN+= CodeGen/DwarfEHPrepare.cpp SRCS_MIN+= CodeGen/EarlyIfConversion.cpp SRCS_MIN+= CodeGen/EdgeBundles.cpp SRCS_MIN+= CodeGen/ExecutionDomainFix.cpp SRCS_MIN+= CodeGen/ExpandMemCmp.cpp SRCS_MIN+= CodeGen/ExpandPostRAPseudos.cpp SRCS_MIN+= CodeGen/ExpandReductions.cpp SRCS_MIN+= CodeGen/FEntryInserter.cpp SRCS_MIN+= CodeGen/FaultMaps.cpp SRCS_MIN+= CodeGen/FinalizeISel.cpp SRCS_MIN+= CodeGen/FixupStatepointCallerSaved.cpp SRCS_MIN+= CodeGen/FuncletLayout.cpp SRCS_MIN+= CodeGen/GCMetadata.cpp SRCS_MIN+= CodeGen/GCMetadataPrinter.cpp SRCS_MIN+= CodeGen/GCRootLowering.cpp SRCS_MIN+= CodeGen/GCStrategy.cpp SRCS_MIN+= CodeGen/GlobalISel/CSEInfo.cpp SRCS_MIN+= CodeGen/GlobalISel/CSEMIRBuilder.cpp SRCS_MIN+= CodeGen/GlobalISel/Combiner.cpp SRCS_MIN+= CodeGen/GlobalISel/CombinerHelper.cpp SRCS_MIN+= CodeGen/GlobalISel/CallLowering.cpp SRCS_MIN+= CodeGen/GlobalISel/GISelChangeObserver.cpp SRCS_MIN+= CodeGen/GlobalISel/GISelKnownBits.cpp SRCS_MIN+= CodeGen/GlobalISel/GlobalISel.cpp SRCS_MIN+= CodeGen/GlobalISel/IRTranslator.cpp SRCS_MIN+= CodeGen/GlobalISel/InlineAsmLowering.cpp SRCS_MIN+= CodeGen/GlobalISel/InstructionSelect.cpp SRCS_MIN+= CodeGen/GlobalISel/InstructionSelector.cpp SRCS_MIN+= CodeGen/GlobalISel/LegalityPredicates.cpp SRCS_MIN+= CodeGen/GlobalISel/LegalizeMutations.cpp SRCS_MIN+= CodeGen/GlobalISel/Legalizer.cpp SRCS_MIN+= CodeGen/GlobalISel/LegalizerHelper.cpp SRCS_MIN+= CodeGen/GlobalISel/LegalizerInfo.cpp SRCS_MIN+= CodeGen/GlobalISel/Localizer.cpp SRCS_MIN+= CodeGen/GlobalISel/LostDebugLocObserver.cpp SRCS_MIN+= CodeGen/GlobalISel/MachineIRBuilder.cpp SRCS_MIN+= CodeGen/GlobalISel/RegBankSelect.cpp SRCS_MIN+= CodeGen/GlobalISel/RegisterBank.cpp SRCS_MIN+= CodeGen/GlobalISel/RegisterBankInfo.cpp SRCS_MIN+= CodeGen/GlobalISel/Utils.cpp SRCS_MIN+= CodeGen/GlobalMerge.cpp SRCS_MIN+= CodeGen/HardwareLoops.cpp SRCS_MIN+= CodeGen/IfConversion.cpp SRCS_MIN+= CodeGen/ImplicitNullChecks.cpp SRCS_MIN+= CodeGen/IndirectBrExpandPass.cpp SRCS_MIN+= CodeGen/InlineSpiller.cpp SRCS_MIN+= CodeGen/InterferenceCache.cpp SRCS_MIN+= CodeGen/InterleavedAccessPass.cpp SRCS_MIN+= CodeGen/InterleavedLoadCombinePass.cpp SRCS_MIN+= CodeGen/IntrinsicLowering.cpp SRCS_MIN+= CodeGen/LLVMTargetMachine.cpp SRCS_MIN+= CodeGen/LatencyPriorityQueue.cpp SRCS_MIN+= CodeGen/LazyMachineBlockFrequencyInfo.cpp SRCS_MIN+= CodeGen/LexicalScopes.cpp SRCS_MIN+= CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp SRCS_MIN+= CodeGen/LiveDebugValues/LiveDebugValues.cpp SRCS_MIN+= CodeGen/LiveDebugValues/VarLocBasedImpl.cpp SRCS_MIN+= CodeGen/LiveDebugVariables.cpp SRCS_MIN+= CodeGen/LiveInterval.cpp SRCS_MIN+= CodeGen/LiveIntervalCalc.cpp SRCS_MIN+= CodeGen/LiveIntervalUnion.cpp SRCS_MIN+= CodeGen/LiveIntervals.cpp SRCS_MIN+= CodeGen/LivePhysRegs.cpp SRCS_MIN+= CodeGen/LiveRangeCalc.cpp SRCS_MIN+= CodeGen/LiveRangeEdit.cpp SRCS_MIN+= CodeGen/LiveRangeShrink.cpp SRCS_MIN+= CodeGen/LiveRegMatrix.cpp SRCS_MIN+= CodeGen/LiveRegUnits.cpp SRCS_MIN+= CodeGen/LiveStacks.cpp SRCS_MIN+= CodeGen/LiveVariables.cpp SRCS_MIN+= CodeGen/LocalStackSlotAllocation.cpp SRCS_MIN+= CodeGen/LoopTraversal.cpp SRCS_MIN+= CodeGen/LowLevelType.cpp SRCS_MIN+= CodeGen/LowerEmuTLS.cpp SRCS_MIN+= CodeGen/MBFIWrapper.cpp SRCS_MIN+= CodeGen/MIRCanonicalizerPass.cpp SRCS_MIN+= CodeGen/MIRNamerPass.cpp SRCS_EXT+= CodeGen/MIRParser/MILexer.cpp SRCS_EXT+= CodeGen/MIRParser/MIParser.cpp SRCS_EXT+= CodeGen/MIRParser/MIRParser.cpp SRCS_MIN+= CodeGen/MIRPrinter.cpp SRCS_MIN+= CodeGen/MIRPrintingPass.cpp SRCS_MIN+= CodeGen/MIRVRegNamerUtils.cpp SRCS_MIN+= CodeGen/MachineBasicBlock.cpp SRCS_MIN+= CodeGen/MachineBlockFrequencyInfo.cpp SRCS_MIN+= CodeGen/MachineBlockPlacement.cpp SRCS_MIN+= CodeGen/MachineBranchProbabilityInfo.cpp SRCS_MIN+= CodeGen/MachineCSE.cpp SRCS_MIN+= CodeGen/MachineCheckDebugify.cpp SRCS_MIN+= CodeGen/MachineCombiner.cpp SRCS_MIN+= CodeGen/MachineCopyPropagation.cpp SRCS_MIN+= CodeGen/MachineDebugify.cpp SRCS_MIN+= CodeGen/MachineDominanceFrontier.cpp SRCS_MIN+= CodeGen/MachineDominators.cpp SRCS_MIN+= CodeGen/MachineFrameInfo.cpp SRCS_MIN+= CodeGen/MachineFunction.cpp SRCS_MIN+= CodeGen/MachineFunctionPass.cpp SRCS_MIN+= CodeGen/MachineFunctionPrinterPass.cpp SRCS_MIN+= CodeGen/MachineFunctionSplitter.cpp SRCS_MIN+= CodeGen/MachineInstr.cpp SRCS_MIN+= CodeGen/MachineInstrBundle.cpp SRCS_MIN+= CodeGen/MachineLICM.cpp SRCS_MIN+= CodeGen/MachineLoopInfo.cpp SRCS_MIN+= CodeGen/MachineLoopUtils.cpp SRCS_MIN+= CodeGen/MachineModuleInfo.cpp SRCS_MIN+= CodeGen/MachineModuleInfoImpls.cpp SRCS_MIN+= CodeGen/MachineOperand.cpp SRCS_MIN+= CodeGen/MachineOptimizationRemarkEmitter.cpp SRCS_MIN+= CodeGen/MachineOutliner.cpp SRCS_MIN+= CodeGen/MachinePipeliner.cpp SRCS_MIN+= CodeGen/MachinePostDominators.cpp SRCS_MIN+= CodeGen/MachineRegionInfo.cpp SRCS_MIN+= CodeGen/MachineRegisterInfo.cpp SRCS_MIN+= CodeGen/MachineSSAUpdater.cpp SRCS_MIN+= CodeGen/MachineScheduler.cpp SRCS_MIN+= CodeGen/MachineSink.cpp SRCS_MIN+= CodeGen/MachineSizeOpts.cpp SRCS_MIN+= CodeGen/MachineStableHash.cpp SRCS_MIN+= CodeGen/MachineStripDebug.cpp SRCS_MIN+= CodeGen/MachineTraceMetrics.cpp SRCS_MIN+= CodeGen/MachineVerifier.cpp SRCS_MIN+= CodeGen/MacroFusion.cpp SRCS_MIN+= CodeGen/ModuloSchedule.cpp SRCS_MIN+= CodeGen/MultiHazardRecognizer.cpp SRCS_MIN+= CodeGen/OptimizePHIs.cpp SRCS_MIN+= CodeGen/PHIElimination.cpp SRCS_MIN+= CodeGen/PHIEliminationUtils.cpp SRCS_MIN+= CodeGen/ParallelCG.cpp SRCS_MIN+= CodeGen/PatchableFunction.cpp SRCS_MIN+= CodeGen/PeepholeOptimizer.cpp SRCS_MIN+= CodeGen/PostRAHazardRecognizer.cpp SRCS_MIN+= CodeGen/PostRASchedulerList.cpp SRCS_MIN+= CodeGen/PreISelIntrinsicLowering.cpp SRCS_MIN+= CodeGen/ProcessImplicitDefs.cpp SRCS_MIN+= CodeGen/PrologEpilogInserter.cpp SRCS_MIN+= CodeGen/PseudoProbeInserter.cpp SRCS_MIN+= CodeGen/PseudoSourceValue.cpp SRCS_MIN+= CodeGen/ReachingDefAnalysis.cpp SRCS_MIN+= CodeGen/RDFGraph.cpp SRCS_MIN+= CodeGen/RDFLiveness.cpp SRCS_MIN+= CodeGen/RDFRegisters.cpp SRCS_MIN+= CodeGen/RegAllocBase.cpp SRCS_MIN+= CodeGen/RegAllocBasic.cpp SRCS_MIN+= CodeGen/RegAllocFast.cpp SRCS_MIN+= CodeGen/RegAllocGreedy.cpp SRCS_MIN+= CodeGen/RegAllocPBQP.cpp SRCS_MIN+= CodeGen/RegUsageInfoCollector.cpp SRCS_MIN+= CodeGen/RegUsageInfoPropagate.cpp SRCS_MIN+= CodeGen/RegisterClassInfo.cpp SRCS_MIN+= CodeGen/RegisterCoalescer.cpp SRCS_MIN+= CodeGen/RegisterPressure.cpp SRCS_MIN+= CodeGen/RegisterScavenging.cpp SRCS_MIN+= CodeGen/RegisterUsageInfo.cpp SRCS_MIN+= CodeGen/RenameIndependentSubregs.cpp SRCS_MIN+= CodeGen/ResetMachineFunctionPass.cpp SRCS_MIN+= CodeGen/SafeStack.cpp SRCS_MIN+= CodeGen/SafeStackLayout.cpp SRCS_MIN+= CodeGen/ScheduleDAG.cpp SRCS_MIN+= CodeGen/ScheduleDAGInstrs.cpp SRCS_MIN+= CodeGen/ScheduleDAGPrinter.cpp SRCS_MIN+= CodeGen/ScoreboardHazardRecognizer.cpp SRCS_MIN+= CodeGen/SelectionDAG/DAGCombiner.cpp SRCS_MIN+= CodeGen/SelectionDAG/FastISel.cpp SRCS_MIN+= CodeGen/SelectionDAG/FunctionLoweringInfo.cpp SRCS_MIN+= CodeGen/SelectionDAG/InstrEmitter.cpp SRCS_MIN+= CodeGen/SelectionDAG/LegalizeDAG.cpp SRCS_MIN+= CodeGen/SelectionDAG/LegalizeFloatTypes.cpp SRCS_MIN+= CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp SRCS_MIN+= CodeGen/SelectionDAG/LegalizeTypes.cpp SRCS_MIN+= CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp SRCS_MIN+= CodeGen/SelectionDAG/LegalizeVectorOps.cpp SRCS_MIN+= CodeGen/SelectionDAG/LegalizeVectorTypes.cpp SRCS_MIN+= CodeGen/SelectionDAG/ResourcePriorityQueue.cpp SRCS_MIN+= CodeGen/SelectionDAG/ScheduleDAGFast.cpp SRCS_MIN+= CodeGen/SelectionDAG/ScheduleDAGRRList.cpp SRCS_MIN+= CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp SRCS_MIN+= CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp SRCS_MIN+= CodeGen/SelectionDAG/SelectionDAG.cpp SRCS_MIN+= CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp SRCS_MIN+= CodeGen/SelectionDAG/SelectionDAGBuilder.cpp SRCS_MIN+= CodeGen/SelectionDAG/SelectionDAGDumper.cpp SRCS_MIN+= CodeGen/SelectionDAG/SelectionDAGISel.cpp SRCS_MIN+= CodeGen/SelectionDAG/SelectionDAGPrinter.cpp SRCS_MIN+= CodeGen/SelectionDAG/SelectionDAGTargetInfo.cpp SRCS_MIN+= CodeGen/SelectionDAG/StatepointLowering.cpp SRCS_MIN+= CodeGen/SelectionDAG/TargetLowering.cpp SRCS_MIN+= CodeGen/ShadowStackGCLowering.cpp SRCS_MIN+= CodeGen/ShrinkWrap.cpp SRCS_MIN+= CodeGen/SjLjEHPrepare.cpp SRCS_MIN+= CodeGen/SlotIndexes.cpp SRCS_MIN+= CodeGen/SpillPlacement.cpp SRCS_MIN+= CodeGen/SplitKit.cpp SRCS_MIN+= CodeGen/StackColoring.cpp SRCS_MIN+= CodeGen/StackMapLivenessAnalysis.cpp SRCS_MIN+= CodeGen/StackMaps.cpp SRCS_MIN+= CodeGen/StackProtector.cpp SRCS_MIN+= CodeGen/StackSlotColoring.cpp SRCS_MIN+= CodeGen/SwiftErrorValueTracking.cpp SRCS_MIN+= CodeGen/SwitchLoweringUtils.cpp SRCS_MIN+= CodeGen/TailDuplication.cpp SRCS_MIN+= CodeGen/TailDuplicator.cpp SRCS_MIN+= CodeGen/TargetFrameLoweringImpl.cpp SRCS_MIN+= CodeGen/TargetInstrInfo.cpp SRCS_MIN+= CodeGen/TargetLoweringBase.cpp SRCS_MIN+= CodeGen/TargetLoweringObjectFileImpl.cpp SRCS_MIN+= CodeGen/TargetOptionsImpl.cpp SRCS_MIN+= CodeGen/TargetPassConfig.cpp SRCS_MIN+= CodeGen/TargetRegisterInfo.cpp SRCS_MIN+= CodeGen/TargetSchedule.cpp SRCS_MIN+= CodeGen/TargetSubtargetInfo.cpp SRCS_MIN+= CodeGen/TwoAddressInstructionPass.cpp SRCS_MIN+= CodeGen/TypePromotion.cpp SRCS_MIN+= CodeGen/UnreachableBlockElim.cpp SRCS_MIN+= CodeGen/ValueTypes.cpp SRCS_MIN+= CodeGen/VirtRegMap.cpp SRCS_MIN+= CodeGen/WasmEHPrepare.cpp SRCS_MIN+= CodeGen/WinEHPrepare.cpp SRCS_MIN+= CodeGen/XRayInstrumentation.cpp SRCS_EXT+= DebugInfo/CodeView/AppendingTypeTableBuilder.cpp SRCS_MIN+= DebugInfo/CodeView/CVSymbolVisitor.cpp SRCS_MIN+= DebugInfo/CodeView/CVTypeVisitor.cpp SRCS_MIN+= DebugInfo/CodeView/CodeViewError.cpp SRCS_MIN+= DebugInfo/CodeView/CodeViewRecordIO.cpp SRCS_MIN+= DebugInfo/CodeView/ContinuationRecordBuilder.cpp SRCS_EXT+= DebugInfo/CodeView/DebugChecksumsSubsection.cpp SRCS_EXT+= DebugInfo/CodeView/DebugCrossExSubsection.cpp SRCS_EXT+= DebugInfo/CodeView/DebugCrossImpSubsection.cpp SRCS_EXT+= DebugInfo/CodeView/DebugFrameDataSubsection.cpp SRCS_EXT+= DebugInfo/CodeView/DebugInlineeLinesSubsection.cpp SRCS_EXT+= DebugInfo/CodeView/DebugLinesSubsection.cpp SRCS_EXT+= DebugInfo/CodeView/DebugStringTableSubsection.cpp SRCS_EXT+= DebugInfo/CodeView/DebugSubsection.cpp SRCS_EXT+= DebugInfo/CodeView/DebugSubsectionRecord.cpp SRCS_EXT+= DebugInfo/CodeView/DebugSubsectionVisitor.cpp SRCS_EXT+= DebugInfo/CodeView/DebugSymbolRVASubsection.cpp SRCS_EXT+= DebugInfo/CodeView/DebugSymbolsSubsection.cpp SRCS_MIN+= DebugInfo/CodeView/EnumTables.cpp SRCS_MIN+= DebugInfo/CodeView/Formatters.cpp SRCS_MIN+= DebugInfo/CodeView/GlobalTypeTableBuilder.cpp SRCS_EXT+= DebugInfo/CodeView/LazyRandomTypeCollection.cpp SRCS_MIN+= DebugInfo/CodeView/Line.cpp SRCS_EXT+= DebugInfo/CodeView/MergingTypeTableBuilder.cpp SRCS_MIN+= DebugInfo/CodeView/RecordName.cpp SRCS_MIN+= DebugInfo/CodeView/RecordSerialization.cpp SRCS_MIN+= DebugInfo/CodeView/SimpleTypeSerializer.cpp SRCS_EXT+= DebugInfo/CodeView/StringsAndChecksums.cpp SRCS_MIN+= DebugInfo/CodeView/SymbolDumper.cpp SRCS_MIN+= DebugInfo/CodeView/SymbolRecordMapping.cpp SRCS_EXT+= DebugInfo/CodeView/SymbolSerializer.cpp SRCS_MIN+= DebugInfo/CodeView/TypeDumpVisitor.cpp SRCS_MIN+= DebugInfo/CodeView/TypeHashing.cpp SRCS_MIN+= DebugInfo/CodeView/TypeIndex.cpp SRCS_MIN+= DebugInfo/CodeView/TypeIndexDiscovery.cpp SRCS_EXT+= DebugInfo/CodeView/TypeRecordHelpers.cpp SRCS_MIN+= DebugInfo/CodeView/TypeRecordMapping.cpp SRCS_MIN+= DebugInfo/CodeView/TypeStreamMerger.cpp SRCS_MIN+= DebugInfo/CodeView/TypeTableCollection.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFAcceleratorTable.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFAddressRange.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFCompileUnit.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFContext.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFDataExtractor.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFDebugAbbrev.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFDebugAddr.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFDebugArangeSet.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFDebugAranges.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFDebugFrame.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFDebugInfoEntry.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFDebugLine.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFDebugLoc.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFDebugMacro.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFDebugPubTable.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFDebugRangeList.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFDebugRnglists.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFDie.cpp SRCS_MIN+= DebugInfo/DWARF/DWARFExpression.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFFormValue.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFGdbIndex.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFListTable.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFTypeUnit.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFUnit.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFUnitIndex.cpp SRCS_MIW+= DebugInfo/DWARF/DWARFVerifier.cpp SRCS_MIN+= DebugInfo/MSF/MSFBuilder.cpp SRCS_MIN+= DebugInfo/MSF/MSFCommon.cpp SRCS_EXT+= DebugInfo/MSF/MSFError.cpp SRCS_MIN+= DebugInfo/MSF/MappedBlockStream.cpp SRCS_EXT+= DebugInfo/PDB/GenericError.cpp SRCS_EXT+= DebugInfo/PDB/IPDBSourceFile.cpp SRCS_EXT+= DebugInfo/PDB/Native/DbiModuleDescriptor.cpp SRCS_EXT+= DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp SRCS_EXT+= DebugInfo/PDB/Native/DbiModuleList.cpp SRCS_EXT+= DebugInfo/PDB/Native/DbiStream.cpp SRCS_EXT+= DebugInfo/PDB/Native/DbiStreamBuilder.cpp SRCS_EXT+= DebugInfo/PDB/Native/EnumTables.cpp SRCS_EXT+= DebugInfo/PDB/Native/GSIStreamBuilder.cpp SRCS_EXT+= DebugInfo/PDB/Native/GlobalsStream.cpp SRCS_EXT+= DebugInfo/PDB/Native/Hash.cpp SRCS_EXT+= DebugInfo/PDB/Native/HashTable.cpp SRCS_EXT+= DebugInfo/PDB/Native/InfoStream.cpp SRCS_EXT+= DebugInfo/PDB/Native/InfoStreamBuilder.cpp SRCS_EXT+= DebugInfo/PDB/Native/InjectedSourceStream.cpp SRCS_EXT+= DebugInfo/PDB/Native/ModuleDebugStream.cpp SRCS_EXT+= DebugInfo/PDB/Native/NamedStreamMap.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeCompilandSymbol.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeEnumGlobals.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeEnumInjectedSources.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeEnumLineNumbers.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeEnumModules.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeEnumSymbols.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeEnumTypes.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeExeSymbol.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeFunctionSymbol.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeInlineSiteSymbol.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeLineNumber.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativePublicSymbol.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeRawSymbol.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeSession.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeSourceFile.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeSymbolEnumerator.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeTypeArray.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeTypeBuiltin.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeTypeEnum.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeTypeFunctionSig.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeTypePointer.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeTypeTypedef.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeTypeUDT.cpp SRCS_EXT+= DebugInfo/PDB/Native/NativeTypeVTShape.cpp SRCS_EXT+= DebugInfo/PDB/Native/PDBFile.cpp SRCS_EXT+= DebugInfo/PDB/Native/PDBFileBuilder.cpp SRCS_EXT+= DebugInfo/PDB/Native/PDBStringTable.cpp SRCS_EXT+= DebugInfo/PDB/Native/PDBStringTableBuilder.cpp SRCS_EXT+= DebugInfo/PDB/Native/PublicsStream.cpp SRCS_EXT+= DebugInfo/PDB/Native/RawError.cpp SRCS_EXT+= DebugInfo/PDB/Native/SymbolCache.cpp SRCS_EXT+= DebugInfo/PDB/Native/SymbolStream.cpp SRCS_EXT+= DebugInfo/PDB/Native/TpiHashing.cpp SRCS_EXT+= DebugInfo/PDB/Native/TpiStream.cpp SRCS_EXT+= DebugInfo/PDB/Native/TpiStreamBuilder.cpp SRCS_EXT+= DebugInfo/PDB/PDB.cpp SRCS_EXT+= DebugInfo/PDB/PDBContext.cpp SRCS_EXT+= DebugInfo/PDB/PDBExtras.cpp SRCS_EXT+= DebugInfo/PDB/PDBInterfaceAnchors.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymDumper.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbol.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolAnnotation.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolBlock.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolCompiland.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolCompilandDetails.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolCompilandEnv.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolCustom.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolData.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolExe.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolFunc.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolFuncDebugEnd.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolFuncDebugStart.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolLabel.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolPublicSymbol.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolThunk.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolTypeArray.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolTypeBaseClass.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolTypeBuiltin.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolTypeCustom.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolTypeDimension.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolTypeEnum.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolTypeFriend.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolTypeFunctionArg.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolTypeFunctionSig.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolTypeManaged.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolTypePointer.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolTypeTypedef.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolTypeUDT.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolTypeVTable.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolTypeVTableShape.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolUnknown.cpp SRCS_EXT+= DebugInfo/PDB/PDBSymbolUsingNamespace.cpp SRCS_EXT+= DebugInfo/PDB/UDTLayout.cpp SRCS_MIW+= DebugInfo/Symbolize/DIPrinter.cpp SRCS_MIW+= DebugInfo/Symbolize/SymbolizableObjectFile.cpp SRCS_MIW+= DebugInfo/Symbolize/Symbolize.cpp SRCS_MIW+= Demangle/Demangle.cpp SRCS_MIN+= Demangle/ItaniumDemangle.cpp SRCS_MIW+= Demangle/MicrosoftDemangle.cpp SRCS_MIW+= Demangle/MicrosoftDemangleNodes.cpp SRCS_XDB+= ExecutionEngine/ExecutionEngine.cpp SRCS_XDB+= ExecutionEngine/ExecutionEngineBindings.cpp SRCS_XDB+= ExecutionEngine/GDBRegistrationListener.cpp SRCS_XDB+= ExecutionEngine/Interpreter/Execution.cpp SRCS_XDB+= ExecutionEngine/Interpreter/ExternalFunctions.cpp SRCS_XDB+= ExecutionEngine/Interpreter/Interpreter.cpp SRCS_EXT+= ExecutionEngine/JITLink/EHFrameSupport.cpp SRCS_EXT+= ExecutionEngine/JITLink/ELF.cpp SRCS_EXT+= ExecutionEngine/JITLink/ELF_x86_64.cpp SRCS_EXT+= ExecutionEngine/JITLink/JITLink.cpp SRCS_EXT+= ExecutionEngine/JITLink/JITLinkGeneric.cpp SRCS_EXT+= ExecutionEngine/JITLink/JITLinkMemoryManager.cpp SRCS_EXT+= ExecutionEngine/JITLink/MachO.cpp SRCS_EXT+= ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp SRCS_EXT+= ExecutionEngine/JITLink/MachO_arm64.cpp SRCS_EXT+= ExecutionEngine/JITLink/MachO_x86_64.cpp SRCS_XDB+= ExecutionEngine/MCJIT/MCJIT.cpp SRCS_EXT+= ExecutionEngine/Orc/CompileOnDemandLayer.cpp SRCS_EXT+= ExecutionEngine/Orc/CompileUtils.cpp SRCS_EXT+= ExecutionEngine/Orc/Core.cpp SRCS_EXT+= ExecutionEngine/Orc/DebugUtils.cpp SRCS_EXT+= ExecutionEngine/Orc/ExecutionUtils.cpp SRCS_EXT+= ExecutionEngine/Orc/IRCompileLayer.cpp SRCS_EXT+= ExecutionEngine/Orc/IRTransformLayer.cpp SRCS_EXT+= ExecutionEngine/Orc/IndirectionUtils.cpp SRCS_EXT+= ExecutionEngine/Orc/JITTargetMachineBuilder.cpp SRCS_EXT+= ExecutionEngine/Orc/LLJIT.cpp SRCS_EXT+= ExecutionEngine/Orc/Layer.cpp SRCS_EXT+= ExecutionEngine/Orc/LazyReexports.cpp SRCS_EXT+= ExecutionEngine/Orc/MachOPlatform.cpp SRCS_EXT+= ExecutionEngine/Orc/Mangling.cpp SRCS_EXT+= ExecutionEngine/Orc/ObjectLinkingLayer.cpp SRCS_EXT+= ExecutionEngine/Orc/ObjectTransformLayer.cpp SRCS_EXT+= ExecutionEngine/Orc/OrcABISupport.cpp SRCS_EXT+= ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp SRCS_EXT+= ExecutionEngine/Orc/Shared/OrcError.cpp SRCS_EXT+= ExecutionEngine/Orc/Shared/RPCError.cpp SRCS_EXT+= ExecutionEngine/Orc/Speculation.cpp SRCS_EXT+= ExecutionEngine/Orc/TargetProcess/RegisterEHFrames.cpp SRCS_EXT+= ExecutionEngine/Orc/TargetProcess/TargetExecutionUtils.cpp SRCS_EXT+= ExecutionEngine/Orc/TargetProcessControl.cpp SRCS_EXT+= ExecutionEngine/Orc/ThreadSafeModule.cpp SRCS_XDB+= ExecutionEngine/RuntimeDyld/JITSymbol.cpp SRCS_XDB+= ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp SRCS_XDB+= ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp SRCS_XDB+= ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp SRCS_XDB+= ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp SRCS_XDB+= ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp SRCS_XDB+= ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp SRCS_XDB+= ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.cpp SRCS_XDB+= ExecutionEngine/SectionMemoryManager.cpp SRCS_XDB+= ExecutionEngine/TargetSelect.cpp SRCS_MIN+= Frontend/OpenMP/OMPContext.cpp SRCS_MIN+= Frontend/OpenMP/OMPIRBuilder.cpp SRCS_MIN+= IR/AbstractCallSite.cpp SRCS_MIN+= IR/AsmWriter.cpp SRCS_MIN+= IR/Assumptions.cpp SRCS_MIN+= IR/Attributes.cpp SRCS_MIN+= IR/AutoUpgrade.cpp SRCS_MIN+= IR/BasicBlock.cpp SRCS_MIN+= IR/Comdat.cpp SRCS_MIN+= IR/ConstantFold.cpp SRCS_MIN+= IR/ConstantRange.cpp SRCS_MIN+= IR/Constants.cpp SRCS_MIN+= IR/Core.cpp SRCS_MIN+= IR/DIBuilder.cpp SRCS_MIN+= IR/DataLayout.cpp SRCS_MIN+= IR/DebugInfo.cpp SRCS_MIN+= IR/DebugInfoMetadata.cpp SRCS_MIN+= IR/DebugLoc.cpp SRCS_MIN+= IR/DiagnosticHandler.cpp SRCS_MIN+= IR/DiagnosticInfo.cpp SRCS_MIN+= IR/DiagnosticPrinter.cpp SRCS_MIN+= IR/Dominators.cpp SRCS_MIN+= IR/FPEnv.cpp SRCS_MIN+= IR/Function.cpp SRCS_MIN+= IR/GVMaterializer.cpp SRCS_MIN+= IR/Globals.cpp SRCS_MIN+= IR/IRBuilder.cpp SRCS_MIN+= IR/IRPrintingPasses.cpp SRCS_MIN+= IR/InlineAsm.cpp SRCS_MIN+= IR/Instruction.cpp SRCS_MIN+= IR/Instructions.cpp SRCS_MIN+= IR/IntrinsicInst.cpp SRCS_MIN+= IR/LLVMContext.cpp SRCS_MIN+= IR/LLVMContextImpl.cpp SRCS_MIN+= IR/LLVMRemarkStreamer.cpp SRCS_MIN+= IR/LegacyPassManager.cpp SRCS_MIN+= IR/MDBuilder.cpp SRCS_MIN+= IR/Mangler.cpp SRCS_MIN+= IR/Metadata.cpp SRCS_MIN+= IR/Module.cpp SRCS_MIN+= IR/ModuleSummaryIndex.cpp SRCS_MIN+= IR/Operator.cpp SRCS_MIN+= IR/OptBisect.cpp SRCS_MIN+= IR/Pass.cpp SRCS_MIN+= IR/PassInstrumentation.cpp SRCS_MIN+= IR/PassManager.cpp SRCS_MIN+= IR/PassRegistry.cpp SRCS_MIN+= IR/PassTimingInfo.cpp SRCS_MIN+= IR/PrintPasses.cpp SRCS_MIN+= IR/ProfileSummary.cpp SRCS_MIN+= IR/PseudoProbe.cpp SRCS_MIN+= IR/ReplaceConstant.cpp SRCS_MIN+= IR/SafepointIRVerifier.cpp SRCS_MIN+= IR/Statepoint.cpp SRCS_MIN+= IR/Type.cpp SRCS_MIN+= IR/TypeFinder.cpp SRCS_MIN+= IR/Use.cpp SRCS_MIN+= IR/User.cpp SRCS_MIN+= IR/Value.cpp SRCS_MIN+= IR/ValueSymbolTable.cpp SRCS_MIN+= IR/Verifier.cpp SRCS_MIN+= IRReader/IRReader.cpp SRCS_EXL+= LTO/Caching.cpp SRCS_MIN+= LTO/LTO.cpp SRCS_MIN+= LTO/LTOBackend.cpp SRCS_EXL+= LTO/LTOCodeGenerator.cpp SRCS_EXL+= LTO/LTOModule.cpp SRCS_EXL+= LTO/SummaryBasedOptimizations.cpp SRCS_EXL+= LTO/ThinLTOCodeGenerator.cpp SRCS_MIN+= LTO/UpdateCompilerUsed.cpp -SRCS_MIN+= LineEditor/LineEditor.cpp +# Only needed for clangd/clang-query, uncomment once we build those. +# SRCS_XDW+= LineEditor/LineEditor.cpp SRCS_MIN+= Linker/IRMover.cpp SRCS_MIN+= Linker/LinkModules.cpp SRCS_MIN+= MC/ConstantPools.cpp SRCS_MIN+= MC/ELFObjectWriter.cpp SRCS_MIN+= MC/MCAsmBackend.cpp SRCS_MIN+= MC/MCAsmInfo.cpp SRCS_MIN+= MC/MCAsmInfoCOFF.cpp SRCS_MIN+= MC/MCAsmInfoDarwin.cpp SRCS_MIN+= MC/MCAsmInfoELF.cpp SRCS_MIN+= MC/MCAsmInfoXCOFF.cpp SRCS_MIN+= MC/MCAsmMacro.cpp SRCS_MIN+= MC/MCAsmStreamer.cpp SRCS_MIN+= MC/MCAssembler.cpp SRCS_MIN+= MC/MCCodeEmitter.cpp SRCS_MIN+= MC/MCCodeView.cpp SRCS_MIN+= MC/MCContext.cpp SRCS_XDL+= MC/MCDisassembler/Disassembler.cpp SRCS_XDW+= MC/MCDisassembler/MCDisassembler.cpp SRCS_XDW+= MC/MCDisassembler/MCExternalSymbolizer.cpp SRCS_MIN+= MC/MCDisassembler/MCRelocationInfo.cpp SRCS_XDW+= MC/MCDisassembler/MCSymbolizer.cpp SRCS_MIN+= MC/MCDwarf.cpp SRCS_MIN+= MC/MCELFObjectTargetWriter.cpp SRCS_MIN+= MC/MCELFStreamer.cpp SRCS_MIN+= MC/MCExpr.cpp SRCS_MIN+= MC/MCFragment.cpp SRCS_MIN+= MC/MCInst.cpp SRCS_MIN+= MC/MCInstPrinter.cpp SRCS_MIN+= MC/MCInstrAnalysis.cpp SRCS_MIN+= MC/MCInstrDesc.cpp SRCS_MIN+= MC/MCInstrInfo.cpp SRCS_MIN+= MC/MCLinkerOptimizationHint.cpp SRCS_MIN+= MC/MCMachOStreamer.cpp SRCS_MIN+= MC/MCMachObjectTargetWriter.cpp SRCS_MIN+= MC/MCNullStreamer.cpp SRCS_MIN+= MC/MCObjectFileInfo.cpp SRCS_MIN+= MC/MCObjectStreamer.cpp SRCS_MIN+= MC/MCObjectWriter.cpp SRCS_MIN+= MC/MCParser/AsmLexer.cpp SRCS_MIN+= MC/MCParser/AsmParser.cpp SRCS_MIN+= MC/MCParser/COFFAsmParser.cpp SRCS_MIN+= MC/MCParser/DarwinAsmParser.cpp SRCS_MIN+= MC/MCParser/ELFAsmParser.cpp SRCS_MIN+= MC/MCParser/MCAsmLexer.cpp SRCS_MIN+= MC/MCParser/MCAsmParser.cpp SRCS_MIN+= MC/MCParser/MCAsmParserExtension.cpp SRCS_MIN+= MC/MCParser/MCTargetAsmParser.cpp SRCS_MIN+= MC/MCParser/WasmAsmParser.cpp SRCS_MIN+= MC/MCPseudoProbe.cpp SRCS_MIN+= MC/MCRegisterInfo.cpp SRCS_MIN+= MC/MCSchedule.cpp SRCS_MIN+= MC/MCSection.cpp SRCS_MIN+= MC/MCSectionCOFF.cpp SRCS_MIN+= MC/MCSectionELF.cpp SRCS_MIN+= MC/MCSectionMachO.cpp SRCS_MIN+= MC/MCSectionWasm.cpp SRCS_MIN+= MC/MCSectionXCOFF.cpp SRCS_MIN+= MC/MCStreamer.cpp SRCS_MIN+= MC/MCSubtargetInfo.cpp SRCS_MIN+= MC/MCSymbol.cpp SRCS_MIN+= MC/MCSymbolELF.cpp SRCS_MIN+= MC/MCSymbolXCOFF.cpp SRCS_MIN+= MC/MCTargetOptions.cpp SRCS_MIN+= MC/MCTargetOptionsCommandFlags.cpp SRCS_MIN+= MC/MCValue.cpp SRCS_MIN+= MC/MCWasmStreamer.cpp SRCS_MIN+= MC/MCWin64EH.cpp SRCS_MIN+= MC/MCWinCOFFStreamer.cpp SRCS_MIN+= MC/MCWinEH.cpp SRCS_MIN+= MC/MCXCOFFStreamer.cpp SRCS_MIN+= MC/MCXCOFFObjectTargetWriter.cpp SRCS_MIN+= MC/MachObjectWriter.cpp SRCS_MIN+= MC/StringTableBuilder.cpp SRCS_MIN+= MC/SubtargetFeature.cpp SRCS_MIN+= MC/WasmObjectWriter.cpp SRCS_MIN+= MC/WinCOFFObjectWriter.cpp SRCS_MIN+= MC/XCOFFObjectWriter.cpp SRCS_EXT+= MCA/CodeEmitter.cpp SRCS_EXT+= MCA/Context.cpp SRCS_EXT+= MCA/HWEventListener.cpp SRCS_EXT+= MCA/HardwareUnits/HardwareUnit.cpp SRCS_EXT+= MCA/HardwareUnits/LSUnit.cpp SRCS_EXT+= MCA/HardwareUnits/RegisterFile.cpp SRCS_EXT+= MCA/HardwareUnits/ResourceManager.cpp SRCS_EXT+= MCA/HardwareUnits/RetireControlUnit.cpp SRCS_EXT+= MCA/HardwareUnits/Scheduler.cpp SRCS_EXT+= MCA/InstrBuilder.cpp SRCS_EXT+= MCA/Instruction.cpp SRCS_EXT+= MCA/Pipeline.cpp SRCS_EXT+= MCA/Stages/DispatchStage.cpp SRCS_EXT+= MCA/Stages/EntryStage.cpp SRCS_EXT+= MCA/Stages/ExecuteStage.cpp SRCS_EXT+= MCA/Stages/InstructionTables.cpp SRCS_EXT+= MCA/Stages/MicroOpQueueStage.cpp SRCS_EXT+= MCA/Stages/RetireStage.cpp SRCS_EXT+= MCA/Stages/Stage.cpp SRCS_EXT+= MCA/Support.cpp SRCS_MIN+= Object/Archive.cpp SRCS_MIN+= Object/ArchiveWriter.cpp SRCS_MIN+= Object/Binary.cpp SRCS_MIN+= Object/COFFImportFile.cpp SRCS_MIW+= Object/COFFModuleDefinition.cpp SRCS_MIN+= Object/COFFObjectFile.cpp SRCS_MIN+= Object/Decompressor.cpp SRCS_MIN+= Object/ELF.cpp SRCS_MIN+= Object/ELFObjectFile.cpp SRCS_MIN+= Object/Error.cpp SRCS_MIN+= Object/IRObjectFile.cpp SRCS_MIN+= Object/IRSymtab.cpp SRCS_MIN+= Object/MachOObjectFile.cpp SRCS_MIW+= Object/MachOUniversal.cpp SRCS_EXT+= Object/MachOUniversalWriter.cpp SRCS_MIW+= Object/Minidump.cpp SRCS_MIN+= Object/ModuleSymbolTable.cpp SRCS_EXT+= Object/Object.cpp SRCS_MIN+= Object/ObjectFile.cpp SRCS_MIN+= Object/RecordStreamer.cpp SRCS_MIW+= Object/RelocationResolver.cpp SRCS_MIW+= Object/SymbolSize.cpp SRCS_MIN+= Object/SymbolicFile.cpp SRCS_MIW+= Object/TapiFile.cpp SRCS_MIW+= Object/TapiUniversal.cpp SRCS_MIN+= Object/WasmObjectFile.cpp SRCS_MIW+= Object/WindowsMachineFlag.cpp SRCS_MIN+= Object/WindowsResource.cpp SRCS_MIN+= Object/XCOFFObjectFile.cpp SRCS_MIN+= ObjectYAML/COFFYAML.cpp SRCS_EXT+= ObjectYAML/CodeViewYAMLDebugSections.cpp SRCS_EXT+= ObjectYAML/CodeViewYAMLSymbols.cpp SRCS_EXT+= ObjectYAML/CodeViewYAMLTypes.cpp SRCS_MIN+= ObjectYAML/DWARFYAML.cpp SRCS_MIN+= ObjectYAML/ELFYAML.cpp SRCS_MIN+= ObjectYAML/MachOYAML.cpp SRCS_EXT+= ObjectYAML/YAML.cpp SRCS_MIN+= Option/Arg.cpp SRCS_MIN+= Option/ArgList.cpp SRCS_MIN+= Option/OptTable.cpp SRCS_MIN+= Option/Option.cpp SRCS_MIN+= Passes/PassBuilder.cpp SRCS_MIN+= Passes/PassPlugin.cpp SRCS_MIN+= Passes/StandardInstrumentations.cpp SRCS_MIN+= ProfileData/Coverage/CoverageMapping.cpp SRCS_MIN+= ProfileData/Coverage/CoverageMappingReader.cpp SRCS_MIN+= ProfileData/Coverage/CoverageMappingWriter.cpp SRCS_MIN+= ProfileData/GCOV.cpp SRCS_MIN+= ProfileData/InstrProf.cpp SRCS_MIN+= ProfileData/InstrProfReader.cpp SRCS_MIN+= ProfileData/InstrProfWriter.cpp SRCS_MIN+= ProfileData/ProfileSummaryBuilder.cpp SRCS_MIN+= ProfileData/SampleProf.cpp SRCS_MIN+= ProfileData/SampleProfReader.cpp SRCS_MIN+= ProfileData/SampleProfWriter.cpp SRCS_MIN+= Remarks/BitstreamRemarkParser.cpp SRCS_MIN+= Remarks/BitstreamRemarkSerializer.cpp SRCS_MIN+= Remarks/RemarkFormat.cpp SRCS_MIN+= Remarks/RemarkParser.cpp SRCS_MIN+= Remarks/RemarkSerializer.cpp SRCS_MIN+= Remarks/RemarkStreamer.cpp SRCS_MIN+= Remarks/RemarkStringTable.cpp SRCS_MIN+= Remarks/YAMLRemarkParser.cpp SRCS_MIN+= Remarks/YAMLRemarkSerializer.cpp SRCS_MIN+= Support/AArch64TargetParser.cpp SRCS_MIN+= Support/ABIBreak.cpp SRCS_MIN+= Support/APFixedPoint.cpp SRCS_MIN+= Support/APFloat.cpp SRCS_MIN+= Support/APInt.cpp SRCS_MIN+= Support/APSInt.cpp SRCS_MIN+= Support/ARMAttributeParser.cpp SRCS_MIN+= Support/ARMBuildAttrs.cpp SRCS_MIN+= Support/ARMTargetParser.cpp SRCS_MIN+= Support/Allocator.cpp SRCS_MIN+= Support/BinaryStreamError.cpp SRCS_MIN+= Support/BinaryStreamReader.cpp SRCS_MIN+= Support/BinaryStreamRef.cpp SRCS_MIN+= Support/BinaryStreamWriter.cpp SRCS_MIN+= Support/BlockFrequency.cpp SRCS_MIN+= Support/BranchProbability.cpp SRCS_MIN+= Support/BuryPointer.cpp SRCS_MIN+= Support/CachePruning.cpp SRCS_MIW+= Support/COM.cpp SRCS_MIN+= Support/CRC.cpp SRCS_MIN+= Support/Chrono.cpp SRCS_MIN+= Support/CodeGenCoverage.cpp SRCS_MIN+= Support/CommandLine.cpp SRCS_MIN+= Support/Compression.cpp SRCS_MIN+= Support/ConvertUTF.cpp SRCS_MIN+= Support/ConvertUTFWrapper.cpp SRCS_MIN+= Support/CrashRecoveryContext.cpp SRCS_MIN+= Support/DAGDeltaAlgorithm.cpp SRCS_MIN+= Support/DJB.cpp SRCS_MIN+= Support/DataExtractor.cpp SRCS_MIN+= Support/Debug.cpp SRCS_MIN+= Support/DebugCounter.cpp SRCS_MIN+= Support/DeltaAlgorithm.cpp SRCS_MIN+= Support/DynamicLibrary.cpp SRCS_MIN+= Support/ELFAttributeParser.cpp SRCS_MIN+= Support/ELFAttributes.cpp SRCS_MIN+= Support/Errno.cpp SRCS_MIN+= Support/Error.cpp SRCS_MIN+= Support/ErrorHandling.cpp SRCS_MIN+= Support/FileCollector.cpp SRCS_EXL+= Support/FileOutputBuffer.cpp SRCS_MIN+= Support/FileUtilities.cpp SRCS_MIN+= Support/FoldingSet.cpp SRCS_MIN+= Support/FormatVariadic.cpp SRCS_MIN+= Support/FormattedStream.cpp SRCS_MIN+= Support/GlobPattern.cpp SRCS_MIN+= Support/GraphWriter.cpp SRCS_MIN+= Support/Hashing.cpp SRCS_MIN+= Support/Host.cpp SRCS_MIN+= Support/InitLLVM.cpp SRCS_MIN+= Support/InstructionCost.cpp SRCS_MIN+= Support/IntEqClasses.cpp SRCS_MIN+= Support/IntervalMap.cpp SRCS_MIN+= Support/ItaniumManglingCanonicalizer.cpp SRCS_MIN+= Support/JSON.cpp SRCS_MIN+= Support/KnownBits.cpp SRCS_MIN+= Support/LEB128.cpp SRCS_MIN+= Support/LineIterator.cpp SRCS_MIN+= Support/Locale.cpp SRCS_MIN+= Support/LockFileManager.cpp SRCS_MIN+= Support/LowLevelType.cpp SRCS_MIN+= Support/MD5.cpp SRCS_MIN+= Support/ManagedStatic.cpp SRCS_MIN+= Support/MathExtras.cpp SRCS_MIN+= Support/MemAlloc.cpp SRCS_XDL+= Support/Memory.cpp SRCS_MIN+= Support/MemoryBuffer.cpp SRCS_MIN+= Support/MemoryBufferRef.cpp SRCS_MIN+= Support/NativeFormatting.cpp SRCS_MIN+= Support/OptimizedStructLayout.cpp SRCS_MIN+= Support/Optional.cpp SRCS_EXL+= Support/Parallel.cpp SRCS_MIN+= Support/Path.cpp SRCS_MIN+= Support/PluginLoader.cpp SRCS_MIN+= Support/PrettyStackTrace.cpp SRCS_MIN+= Support/Process.cpp SRCS_MIN+= Support/Program.cpp SRCS_MIN+= Support/RISCVAttributeParser.cpp SRCS_MIN+= Support/RISCVAttributes.cpp SRCS_MIN+= Support/RWMutex.cpp SRCS_MIN+= Support/RandomNumberGenerator.cpp SRCS_MIN+= Support/Regex.cpp SRCS_MIN+= Support/SHA1.cpp SRCS_MIN+= Support/ScaledNumber.cpp SRCS_MIN+= Support/ScopedPrinter.cpp SRCS_MIN+= Support/Signals.cpp SRCS_MIN+= Support/Signposts.cpp SRCS_MIN+= Support/SmallPtrSet.cpp SRCS_MIN+= Support/SmallVector.cpp SRCS_MIN+= Support/SourceMgr.cpp SRCS_MIN+= Support/SpecialCaseList.cpp SRCS_MIN+= Support/Statistic.cpp SRCS_MIN+= Support/StringExtras.cpp SRCS_MIN+= Support/StringMap.cpp SRCS_MIN+= Support/StringRef.cpp SRCS_MIN+= Support/StringSaver.cpp SRCS_MIN+= Support/SuffixTree.cpp SRCS_MIN+= Support/SymbolRemappingReader.cpp SRCS_EXT+= Support/SystemUtils.cpp SRCS_LLD+= Support/TarWriter.cpp SRCS_MIN+= Support/TargetParser.cpp SRCS_MIN+= Support/TargetRegistry.cpp SRCS_MIN+= Support/ThreadLocal.cpp SRCS_MIW+= Support/ThreadPool.cpp SRCS_MIN+= Support/Threading.cpp SRCS_MIN+= Support/TimeProfiler.cpp SRCS_MIN+= Support/Timer.cpp SRCS_MIN+= Support/ToolOutputFile.cpp SRCS_MIN+= Support/TrigramIndex.cpp SRCS_MIN+= Support/Triple.cpp SRCS_MIN+= Support/Twine.cpp SRCS_MIN+= Support/Unicode.cpp SRCS_MIN+= Support/UnicodeCaseFold.cpp SRCS_MIN+= Support/Valgrind.cpp SRCS_MIN+= Support/VirtualFileSystem.cpp SRCS_MIN+= Support/VersionTuple.cpp SRCS_MIN+= Support/Watchdog.cpp SRCS_MIN+= Support/WithColor.cpp SRCS_MIN+= Support/X86TargetParser.cpp SRCS_MIN+= Support/YAMLParser.cpp SRCS_MIN+= Support/YAMLTraits.cpp SRCS_FUL+= Support/Z3Solver.cpp SRCS_MIN+= Support/circular_raw_ostream.cpp SRCS_MIN+= Support/raw_os_ostream.cpp SRCS_MIN+= Support/raw_ostream.cpp SRCS_MIN+= Support/regcomp.c SRCS_MIN+= Support/regerror.c SRCS_MIN+= Support/regexec.c SRCS_MIN+= Support/regfree.c SRCS_MIN+= Support/regstrlcpy.c SRCS_MIN+= Support/xxhash.cpp SRCS_MIN+= TableGen/DetailedRecordsBackend.cpp SRCS_MIN+= TableGen/Error.cpp SRCS_MIN+= TableGen/JSONBackend.cpp SRCS_MIN+= TableGen/Main.cpp SRCS_MIN+= TableGen/Record.cpp SRCS_MIN+= TableGen/SetTheory.cpp SRCS_MIN+= TableGen/StringMatcher.cpp SRCS_MIN+= TableGen/TGLexer.cpp SRCS_MIN+= TableGen/TGParser.cpp SRCS_MIN+= TableGen/TableGenBackend.cpp .if ${MK_LLVM_TARGET_AARCH64} != "no" SRCS_MIN+= Target/AArch64/AArch64A53Fix835769.cpp SRCS_MIN+= Target/AArch64/AArch64A57FPLoadBalancing.cpp SRCS_MIN+= Target/AArch64/AArch64AdvSIMDScalarPass.cpp SRCS_MIN+= Target/AArch64/AArch64AsmPrinter.cpp SRCS_MIN+= Target/AArch64/AArch64BranchTargets.cpp SRCS_MIN+= Target/AArch64/AArch64CallingConvention.cpp SRCS_MIN+= Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp SRCS_MIN+= Target/AArch64/AArch64CollectLOH.cpp SRCS_MIN+= Target/AArch64/AArch64CompressJumpTables.cpp SRCS_MIN+= Target/AArch64/AArch64CondBrTuning.cpp SRCS_MIN+= Target/AArch64/AArch64ConditionOptimizer.cpp SRCS_MIN+= Target/AArch64/AArch64ConditionalCompares.cpp SRCS_MIN+= Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp SRCS_MIN+= Target/AArch64/AArch64ExpandImm.cpp SRCS_MIN+= Target/AArch64/AArch64ExpandPseudoInsts.cpp SRCS_MIN+= Target/AArch64/AArch64FalkorHWPFFix.cpp SRCS_MIN+= Target/AArch64/AArch64FastISel.cpp SRCS_MIN+= Target/AArch64/AArch64FrameLowering.cpp SRCS_MIN+= Target/AArch64/AArch64ISelDAGToDAG.cpp SRCS_MIN+= Target/AArch64/AArch64ISelLowering.cpp SRCS_MIN+= Target/AArch64/AArch64InstrInfo.cpp SRCS_MIN+= Target/AArch64/AArch64LoadStoreOptimizer.cpp SRCS_MIN+= Target/AArch64/AArch64MCInstLower.cpp SRCS_MIN+= Target/AArch64/AArch64MachineFunctionInfo.cpp SRCS_MIN+= Target/AArch64/AArch64MacroFusion.cpp SRCS_MIN+= Target/AArch64/AArch64PBQPRegAlloc.cpp SRCS_MIN+= Target/AArch64/AArch64PromoteConstant.cpp SRCS_MIN+= Target/AArch64/AArch64RedundantCopyElimination.cpp SRCS_MIN+= Target/AArch64/AArch64RegisterInfo.cpp SRCS_MIN+= Target/AArch64/AArch64SIMDInstrOpt.cpp SRCS_MIN+= Target/AArch64/AArch64SLSHardening.cpp SRCS_MIN+= Target/AArch64/AArch64SelectionDAGInfo.cpp SRCS_MIN+= Target/AArch64/AArch64SpeculationHardening.cpp SRCS_MIN+= Target/AArch64/AArch64StackTagging.cpp SRCS_MIN+= Target/AArch64/AArch64StackTaggingPreRA.cpp SRCS_MIN+= Target/AArch64/AArch64StorePairSuppress.cpp SRCS_MIN+= Target/AArch64/AArch64Subtarget.cpp SRCS_MIN+= Target/AArch64/AArch64TargetMachine.cpp SRCS_MIN+= Target/AArch64/AArch64TargetObjectFile.cpp SRCS_MIN+= Target/AArch64/AArch64TargetTransformInfo.cpp SRCS_MIN+= Target/AArch64/AsmParser/AArch64AsmParser.cpp SRCS_XDW+= Target/AArch64/Disassembler/AArch64Disassembler.cpp SRCS_XDW+= Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp SRCS_MIN+= Target/AArch64/GISel/AArch64CallLowering.cpp SRCS_MIN+= Target/AArch64/GISel/AArch64InstructionSelector.cpp SRCS_MIN+= Target/AArch64/GISel/AArch64LegalizerInfo.cpp SRCS_MIN+= Target/AArch64/GISel/AArch64PreLegalizerCombiner.cpp SRCS_MIN+= Target/AArch64/GISel/AArch64PostLegalizerCombiner.cpp SRCS_MIN+= Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp SRCS_MIN+= Target/AArch64/GISel/AArch64PostSelectOptimize.cpp SRCS_MIN+= Target/AArch64/GISel/AArch64RegisterBankInfo.cpp SRCS_MIN+= Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp SRCS_MIN+= Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp SRCS_MIN+= Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp SRCS_MIN+= Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp SRCS_MIN+= Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp SRCS_MIN+= Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp SRCS_MIN+= Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp SRCS_MIN+= Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp SRCS_MIN+= Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp SRCS_MIN+= Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp SRCS_MIN+= Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp SRCS_MIN+= Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp SRCS_MIN+= Target/AArch64/SVEIntrinsicOpts.cpp SRCS_MIN+= Target/AArch64/TargetInfo/AArch64TargetInfo.cpp SRCS_MIN+= Target/AArch64/Utils/AArch64BaseInfo.cpp .endif # MK_LLVM_TARGET_AARCH64 .if ${MK_LLVM_TARGET_ARM} != "no" SRCS_MIN+= Target/ARM/A15SDOptimizer.cpp SRCS_MIN+= Target/ARM/ARMAsmPrinter.cpp SRCS_MIN+= Target/ARM/ARMBaseInstrInfo.cpp SRCS_MIN+= Target/ARM/ARMBaseRegisterInfo.cpp SRCS_MIN+= Target/ARM/ARMBasicBlockInfo.cpp SRCS_MIN+= Target/ARM/ARMBlockPlacement.cpp SRCS_MIN+= Target/ARM/ARMCallLowering.cpp SRCS_MIN+= Target/ARM/ARMCallingConv.cpp SRCS_MIN+= Target/ARM/ARMConstantIslandPass.cpp SRCS_MIN+= Target/ARM/ARMConstantPoolValue.cpp SRCS_MIN+= Target/ARM/ARMExpandPseudoInsts.cpp SRCS_MIN+= Target/ARM/ARMFastISel.cpp SRCS_MIN+= Target/ARM/ARMFrameLowering.cpp SRCS_MIN+= Target/ARM/ARMHazardRecognizer.cpp SRCS_MIN+= Target/ARM/ARMISelDAGToDAG.cpp SRCS_MIN+= Target/ARM/ARMISelLowering.cpp SRCS_MIN+= Target/ARM/ARMInstrInfo.cpp SRCS_MIN+= Target/ARM/ARMInstructionSelector.cpp SRCS_MIN+= Target/ARM/ARMLegalizerInfo.cpp SRCS_MIN+= Target/ARM/ARMLoadStoreOptimizer.cpp SRCS_MIN+= Target/ARM/ARMLowOverheadLoops.cpp SRCS_MIN+= Target/ARM/ARMMCInstLower.cpp SRCS_MIN+= Target/ARM/ARMMachineFunctionInfo.cpp SRCS_MIN+= Target/ARM/ARMMacroFusion.cpp SRCS_MIN+= Target/ARM/ARMOptimizeBarriersPass.cpp SRCS_MIN+= Target/ARM/ARMParallelDSP.cpp SRCS_MIN+= Target/ARM/ARMRegisterBankInfo.cpp SRCS_MIN+= Target/ARM/ARMRegisterInfo.cpp SRCS_MIN+= Target/ARM/ARMSLSHardening.cpp SRCS_MIN+= Target/ARM/ARMSelectionDAGInfo.cpp SRCS_MIN+= Target/ARM/ARMSubtarget.cpp SRCS_MIN+= Target/ARM/ARMTargetMachine.cpp SRCS_MIN+= Target/ARM/ARMTargetObjectFile.cpp SRCS_MIN+= Target/ARM/ARMTargetTransformInfo.cpp SRCS_MIN+= Target/ARM/AsmParser/ARMAsmParser.cpp SRCS_MIN+= Target/ARM/Disassembler/ARMDisassembler.cpp SRCS_MIN+= Target/ARM/MCTargetDesc/ARMAsmBackend.cpp SRCS_MIN+= Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp SRCS_MIN+= Target/ARM/MCTargetDesc/ARMELFStreamer.cpp SRCS_MIN+= Target/ARM/MCTargetDesc/ARMInstPrinter.cpp SRCS_MIN+= Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp SRCS_MIN+= Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp SRCS_MIN+= Target/ARM/MCTargetDesc/ARMMCExpr.cpp SRCS_MIN+= Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp SRCS_MIN+= Target/ARM/MCTargetDesc/ARMMachORelocationInfo.cpp SRCS_MIN+= Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp SRCS_MIN+= Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp SRCS_MIN+= Target/ARM/MCTargetDesc/ARMUnwindOpAsm.cpp SRCS_MIN+= Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp SRCS_MIN+= Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp SRCS_MIN+= Target/ARM/MLxExpansionPass.cpp SRCS_MIN+= Target/ARM/MVEGatherScatterLowering.cpp SRCS_MIN+= Target/ARM/MVETailPredication.cpp SRCS_MIN+= Target/ARM/MVEVPTBlockPass.cpp SRCS_MIN+= Target/ARM/MVEVPTOptimisationsPass.cpp SRCS_MIN+= Target/ARM/TargetInfo/ARMTargetInfo.cpp SRCS_MIN+= Target/ARM/Thumb1FrameLowering.cpp SRCS_MIN+= Target/ARM/Thumb1InstrInfo.cpp SRCS_MIN+= Target/ARM/Thumb2ITBlockPass.cpp SRCS_MIN+= Target/ARM/Thumb2InstrInfo.cpp SRCS_MIN+= Target/ARM/Thumb2SizeReduction.cpp SRCS_MIN+= Target/ARM/ThumbRegisterInfo.cpp SRCS_MIN+= Target/ARM/Utils/ARMBaseInfo.cpp .endif # MK_LLVM_TARGET_ARM .if ${MK_LLVM_TARGET_BPF} != "no" SRCS_MIN+= Target/BPF/AsmParser/BPFAsmParser.cpp SRCS_MIN+= Target/BPF/BPFAbstractMemberAccess.cpp SRCS_MIN+= Target/BPF/BPFAsmPrinter.cpp SRCS_MIN+= Target/BPF/BPFFrameLowering.cpp SRCS_MIN+= Target/BPF/BPFISelDAGToDAG.cpp SRCS_MIN+= Target/BPF/BPFISelLowering.cpp SRCS_MIN+= Target/BPF/BPFInstrInfo.cpp SRCS_MIN+= Target/BPF/BPFMCInstLower.cpp SRCS_MIN+= Target/BPF/BPFMIChecking.cpp SRCS_MIN+= Target/BPF/BPFMIPeephole.cpp SRCS_MIN+= Target/BPF/BPFMISimplifyPatchable.cpp SRCS_MIN+= Target/BPF/BPFPreserveDIType.cpp SRCS_MIN+= Target/BPF/BPFRegisterInfo.cpp SRCS_MIN+= Target/BPF/BPFSelectionDAGInfo.cpp SRCS_MIN+= Target/BPF/BPFSubtarget.cpp SRCS_MIN+= Target/BPF/BPFTargetMachine.cpp SRCS_MIN+= Target/BPF/BTFDebug.cpp SRCS_MIN+= Target/BPF/Disassembler/BPFDisassembler.cpp SRCS_MIN+= Target/BPF/MCTargetDesc/BPFAsmBackend.cpp SRCS_MIN+= Target/BPF/MCTargetDesc/BPFELFObjectWriter.cpp SRCS_MIN+= Target/BPF/MCTargetDesc/BPFInstPrinter.cpp SRCS_MIN+= Target/BPF/MCTargetDesc/BPFMCCodeEmitter.cpp SRCS_MIN+= Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp SRCS_MIN+= Target/BPF/TargetInfo/BPFTargetInfo.cpp .endif # MK_LLVM_TARGET_BPF .if ${MK_LLVM_TARGET_MIPS} != "no" SRCS_MIN+= Target/Mips/AsmParser/MipsAsmParser.cpp SRCS_XDW+= Target/Mips/Disassembler/MipsDisassembler.cpp SRCS_MIN+= Target/Mips/MCTargetDesc/MipsABIFlagsSection.cpp SRCS_MIN+= Target/Mips/MCTargetDesc/MipsABIInfo.cpp SRCS_MIN+= Target/Mips/MCTargetDesc/MipsAsmBackend.cpp SRCS_MIN+= Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp SRCS_MIN+= Target/Mips/MCTargetDesc/MipsELFStreamer.cpp SRCS_MIN+= Target/Mips/MCTargetDesc/MipsInstPrinter.cpp SRCS_MIN+= Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp SRCS_MIN+= Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp SRCS_MIN+= Target/Mips/MCTargetDesc/MipsMCExpr.cpp SRCS_MIN+= Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp SRCS_MIN+= Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp SRCS_MIN+= Target/Mips/MCTargetDesc/MipsOptionRecord.cpp SRCS_MIN+= Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp SRCS_MIN+= Target/Mips/MicroMipsSizeReduction.cpp SRCS_MIN+= Target/Mips/Mips16FrameLowering.cpp SRCS_MIN+= Target/Mips/Mips16HardFloat.cpp SRCS_MIN+= Target/Mips/Mips16HardFloatInfo.cpp SRCS_MIN+= Target/Mips/Mips16ISelDAGToDAG.cpp SRCS_MIN+= Target/Mips/Mips16ISelLowering.cpp SRCS_MIN+= Target/Mips/Mips16InstrInfo.cpp SRCS_MIN+= Target/Mips/Mips16RegisterInfo.cpp SRCS_MIN+= Target/Mips/MipsAnalyzeImmediate.cpp SRCS_MIN+= Target/Mips/MipsAsmPrinter.cpp SRCS_MIN+= Target/Mips/MipsBranchExpansion.cpp SRCS_MIN+= Target/Mips/MipsCCState.cpp SRCS_MIN+= Target/Mips/MipsCallLowering.cpp SRCS_MIN+= Target/Mips/MipsConstantIslandPass.cpp SRCS_MIN+= Target/Mips/MipsDelaySlotFiller.cpp SRCS_MIN+= Target/Mips/MipsExpandPseudo.cpp SRCS_MIN+= Target/Mips/MipsFastISel.cpp SRCS_MIN+= Target/Mips/MipsFrameLowering.cpp SRCS_MIN+= Target/Mips/MipsISelDAGToDAG.cpp SRCS_MIN+= Target/Mips/MipsISelLowering.cpp SRCS_MIN+= Target/Mips/MipsInstrInfo.cpp SRCS_MIN+= Target/Mips/MipsInstructionSelector.cpp SRCS_MIN+= Target/Mips/MipsLegalizerInfo.cpp SRCS_MIN+= Target/Mips/MipsMCInstLower.cpp SRCS_MIN+= Target/Mips/MipsMachineFunction.cpp SRCS_MIN+= Target/Mips/MipsModuleISelDAGToDAG.cpp SRCS_MIN+= Target/Mips/MipsOptimizePICCall.cpp SRCS_MIN+= Target/Mips/MipsOs16.cpp SRCS_MIN+= Target/Mips/MipsPreLegalizerCombiner.cpp SRCS_MIN+= Target/Mips/MipsRegisterBankInfo.cpp SRCS_MIN+= Target/Mips/MipsRegisterInfo.cpp SRCS_MIN+= Target/Mips/MipsSEFrameLowering.cpp SRCS_MIN+= Target/Mips/MipsSEISelDAGToDAG.cpp SRCS_MIN+= Target/Mips/MipsSEISelLowering.cpp SRCS_MIN+= Target/Mips/MipsSEInstrInfo.cpp SRCS_MIN+= Target/Mips/MipsSERegisterInfo.cpp SRCS_MIN+= Target/Mips/MipsSubtarget.cpp SRCS_MIN+= Target/Mips/MipsTargetMachine.cpp SRCS_MIN+= Target/Mips/MipsTargetObjectFile.cpp SRCS_MIN+= Target/Mips/TargetInfo/MipsTargetInfo.cpp .endif # MK_LLVM_TARGET_MIPS .if ${MK_LLVM_TARGET_POWERPC} != "no" SRCS_MIN+= Target/PowerPC/AsmParser/PPCAsmParser.cpp SRCS_MIN+= Target/PowerPC/Disassembler/PPCDisassembler.cpp SRCS_MIN+= Target/PowerPC/GISel/PPCCallLowering.cpp SRCS_MIN+= Target/PowerPC/GISel/PPCInstructionSelector.cpp SRCS_MIN+= Target/PowerPC/GISel/PPCLegalizerInfo.cpp SRCS_MIN+= Target/PowerPC/GISel/PPCRegisterBankInfo.cpp SRCS_MIN+= Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp SRCS_MIN+= Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp SRCS_MIN+= Target/PowerPC/MCTargetDesc/PPCELFStreamer.cpp SRCS_MIN+= Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp SRCS_MIN+= Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp SRCS_MIN+= Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp SRCS_MIN+= Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp SRCS_MIN+= Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp SRCS_MIN+= Target/PowerPC/MCTargetDesc/PPCPredicates.cpp SRCS_MIN+= Target/PowerPC/MCTargetDesc/PPCXCOFFObjectWriter.cpp SRCS_MIN+= Target/PowerPC/PPCAsmPrinter.cpp SRCS_MIN+= Target/PowerPC/PPCBoolRetToInt.cpp SRCS_MIN+= Target/PowerPC/PPCBranchCoalescing.cpp SRCS_MIN+= Target/PowerPC/PPCBranchSelector.cpp SRCS_MIN+= Target/PowerPC/PPCCCState.cpp SRCS_MIN+= Target/PowerPC/PPCCTRLoops.cpp SRCS_MIN+= Target/PowerPC/PPCCallingConv.cpp SRCS_MIN+= Target/PowerPC/PPCEarlyReturn.cpp SRCS_MIN+= Target/PowerPC/PPCExpandISEL.cpp SRCS_MIN+= Target/PowerPC/PPCFastISel.cpp SRCS_MIN+= Target/PowerPC/PPCFrameLowering.cpp SRCS_MIN+= Target/PowerPC/PPCHazardRecognizers.cpp SRCS_MIN+= Target/PowerPC/PPCISelDAGToDAG.cpp SRCS_MIN+= Target/PowerPC/PPCISelLowering.cpp SRCS_MIN+= Target/PowerPC/PPCInstrInfo.cpp SRCS_MIN+= Target/PowerPC/PPCLoopInstrFormPrep.cpp SRCS_MIN+= Target/PowerPC/PPCLowerMASSVEntries.cpp SRCS_MIN+= Target/PowerPC/PPCMacroFusion.cpp SRCS_MIN+= Target/PowerPC/PPCMCInstLower.cpp SRCS_MIN+= Target/PowerPC/PPCMIPeephole.cpp SRCS_MIN+= Target/PowerPC/PPCMachineFunctionInfo.cpp SRCS_MIN+= Target/PowerPC/PPCMachineScheduler.cpp SRCS_MIN+= Target/PowerPC/PPCPreEmitPeephole.cpp SRCS_MIN+= Target/PowerPC/PPCReduceCRLogicals.cpp SRCS_MIN+= Target/PowerPC/PPCRegisterInfo.cpp SRCS_MIN+= Target/PowerPC/PPCSubtarget.cpp SRCS_MIN+= Target/PowerPC/PPCTLSDynamicCall.cpp SRCS_MIN+= Target/PowerPC/PPCTOCRegDeps.cpp SRCS_MIN+= Target/PowerPC/PPCTargetMachine.cpp SRCS_MIN+= Target/PowerPC/PPCTargetObjectFile.cpp SRCS_MIN+= Target/PowerPC/PPCTargetTransformInfo.cpp SRCS_MIN+= Target/PowerPC/PPCVSXCopy.cpp SRCS_MIN+= Target/PowerPC/PPCVSXFMAMutate.cpp SRCS_MIN+= Target/PowerPC/PPCVSXSwapRemoval.cpp SRCS_MIN+= Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp .endif # MK_LLVM_TARGET_POWERPC .if ${MK_LLVM_TARGET_RISCV} != "no" SRCS_MIN+= Target/RISCV/AsmParser/RISCVAsmParser.cpp SRCS_MIN+= Target/RISCV/Disassembler/RISCVDisassembler.cpp SRCS_MIN+= Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp SRCS_MIN+= Target/RISCV/MCTargetDesc/RISCVBaseInfo.cpp SRCS_MIN+= Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp SRCS_MIN+= Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp SRCS_MIN+= Target/RISCV/MCTargetDesc/RISCVInstPrinter.cpp SRCS_MIN+= Target/RISCV/MCTargetDesc/RISCVMatInt.cpp SRCS_MIN+= Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.cpp SRCS_MIN+= Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp SRCS_MIN+= Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp SRCS_MIN+= Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp SRCS_MIN+= Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp SRCS_MIN+= Target/RISCV/RISCVAsmPrinter.cpp SRCS_MIN+= Target/RISCV/RISCVCallLowering.cpp SRCS_MIN+= Target/RISCV/RISCVCleanupVSETVLI.cpp SRCS_MIN+= Target/RISCV/RISCVExpandAtomicPseudoInsts.cpp SRCS_MIN+= Target/RISCV/RISCVExpandPseudoInsts.cpp SRCS_MIN+= Target/RISCV/RISCVFrameLowering.cpp SRCS_MIN+= Target/RISCV/RISCVInstrInfo.cpp SRCS_MIN+= Target/RISCV/RISCVInstructionSelector.cpp SRCS_MIN+= Target/RISCV/RISCVISelDAGToDAG.cpp SRCS_MIN+= Target/RISCV/RISCVISelLowering.cpp SRCS_MIN+= Target/RISCV/RISCVLegalizerInfo.cpp SRCS_MIN+= Target/RISCV/RISCVMCInstLower.cpp SRCS_MIN+= Target/RISCV/RISCVMergeBaseOffset.cpp SRCS_MIN+= Target/RISCV/RISCVRegisterBankInfo.cpp SRCS_MIN+= Target/RISCV/RISCVRegisterInfo.cpp SRCS_MIN+= Target/RISCV/RISCVSubtarget.cpp SRCS_MIN+= Target/RISCV/RISCVTargetMachine.cpp SRCS_MIN+= Target/RISCV/RISCVTargetObjectFile.cpp SRCS_MIN+= Target/RISCV/RISCVTargetTransformInfo.cpp SRCS_MIN+= Target/RISCV/TargetInfo/RISCVTargetInfo.cpp .endif # MK_LLVM_TARGET_RISCV SRCS_MIN+= Target/Target.cpp SRCS_MIN+= Target/TargetLoweringObjectFile.cpp SRCS_MIN+= Target/TargetMachine.cpp SRCS_MIN+= Target/TargetMachineC.cpp .if ${MK_LLVM_TARGET_X86} != "no" SRCS_MIN+= Target/X86/AsmParser/X86AsmParser.cpp SRCS_XDW+= Target/X86/Disassembler/X86Disassembler.cpp SRCS_MIN+= Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp SRCS_MIN+= Target/X86/MCTargetDesc/X86AsmBackend.cpp SRCS_MIN+= Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp SRCS_MIN+= Target/X86/MCTargetDesc/X86InstComments.cpp SRCS_MIN+= Target/X86/MCTargetDesc/X86InstPrinterCommon.cpp SRCS_MIN+= Target/X86/MCTargetDesc/X86IntelInstPrinter.cpp SRCS_MIN+= Target/X86/MCTargetDesc/X86MCAsmInfo.cpp SRCS_MIN+= Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp SRCS_MIN+= Target/X86/MCTargetDesc/X86MCTargetDesc.cpp SRCS_MIN+= Target/X86/MCTargetDesc/X86MachObjectWriter.cpp SRCS_MIN+= Target/X86/MCTargetDesc/X86ShuffleDecode.cpp SRCS_MIN+= Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp SRCS_MIN+= Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp SRCS_MIN+= Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp SRCS_MIN+= Target/X86/TargetInfo/X86TargetInfo.cpp SRCS_MIN+= Target/X86/X86AsmPrinter.cpp SRCS_MIN+= Target/X86/X86AvoidStoreForwardingBlocks.cpp SRCS_MIN+= Target/X86/X86AvoidTrailingCall.cpp SRCS_MIN+= Target/X86/X86CallFrameOptimization.cpp SRCS_MIN+= Target/X86/X86CallLowering.cpp SRCS_MIN+= Target/X86/X86CallingConv.cpp SRCS_MIN+= Target/X86/X86CmovConversion.cpp SRCS_MIN+= Target/X86/X86DiscriminateMemOps.cpp SRCS_MIN+= Target/X86/X86DomainReassignment.cpp SRCS_MIN+= Target/X86/X86EvexToVex.cpp SRCS_MIN+= Target/X86/X86ExpandPseudo.cpp SRCS_MIN+= Target/X86/X86FastISel.cpp SRCS_MIN+= Target/X86/X86FixupBWInsts.cpp SRCS_MIN+= Target/X86/X86FixupLEAs.cpp SRCS_MIN+= Target/X86/X86FixupSetCC.cpp SRCS_MIN+= Target/X86/X86FlagsCopyLowering.cpp SRCS_MIN+= Target/X86/X86FloatingPoint.cpp SRCS_MIN+= Target/X86/X86FrameLowering.cpp SRCS_MIN+= Target/X86/X86ISelDAGToDAG.cpp SRCS_MIN+= Target/X86/X86ISelLowering.cpp SRCS_MIN+= Target/X86/X86IndirectBranchTracking.cpp SRCS_MIN+= Target/X86/X86IndirectThunks.cpp SRCS_MIN+= Target/X86/X86InsertPrefetch.cpp SRCS_MIN+= Target/X86/X86InsertWait.cpp SRCS_MIN+= Target/X86/X86InstCombineIntrinsic.cpp SRCS_MIN+= Target/X86/X86InstrFMA3Info.cpp SRCS_MIN+= Target/X86/X86InstrFoldTables.cpp SRCS_MIN+= Target/X86/X86InstrInfo.cpp SRCS_MIN+= Target/X86/X86InstructionSelector.cpp SRCS_MIN+= Target/X86/X86InterleavedAccess.cpp SRCS_MIN+= Target/X86/X86LegalizerInfo.cpp SRCS_MIN+= Target/X86/X86LoadValueInjectionLoadHardening.cpp SRCS_MIN+= Target/X86/X86LoadValueInjectionRetHardening.cpp SRCS_MIN+= Target/X86/X86LowerAMXType.cpp SRCS_MIN+= Target/X86/X86MCInstLower.cpp SRCS_MIN+= Target/X86/X86MachineFunctionInfo.cpp SRCS_MIN+= Target/X86/X86MacroFusion.cpp SRCS_MIN+= Target/X86/X86OptimizeLEAs.cpp SRCS_MIN+= Target/X86/X86PadShortFunction.cpp SRCS_MIN+= Target/X86/X86PartialReduction.cpp SRCS_MIN+= Target/X86/X86PreTileConfig.cpp SRCS_MIN+= Target/X86/X86RegisterBankInfo.cpp SRCS_MIN+= Target/X86/X86RegisterInfo.cpp SRCS_MIN+= Target/X86/X86SelectionDAGInfo.cpp SRCS_MIN+= Target/X86/X86ShuffleDecodeConstantPool.cpp SRCS_MIN+= Target/X86/X86SpeculativeExecutionSideEffectSuppression.cpp SRCS_MIN+= Target/X86/X86SpeculativeLoadHardening.cpp SRCS_MIN+= Target/X86/X86Subtarget.cpp SRCS_MIN+= Target/X86/X86TargetMachine.cpp SRCS_MIN+= Target/X86/X86TargetObjectFile.cpp SRCS_MIN+= Target/X86/X86TargetTransformInfo.cpp SRCS_MIN+= Target/X86/X86TileConfig.cpp SRCS_MIN+= Target/X86/X86VZeroUpper.cpp SRCS_MIN+= Target/X86/X86WinAllocaExpander.cpp SRCS_MIN+= Target/X86/X86WinEHState.cpp .endif # MK_LLVM_TARGET_X86 SRCS_MIW+= TextAPI/MachO/Architecture.cpp SRCS_MIW+= TextAPI/MachO/ArchitectureSet.cpp SRCS_MIW+= TextAPI/MachO/InterfaceFile.cpp SRCS_MIW+= TextAPI/MachO/PackedVersion.cpp SRCS_MIW+= TextAPI/MachO/Platform.cpp SRCS_MIW+= TextAPI/MachO/Target.cpp SRCS_MIW+= TextAPI/MachO/TextStub.cpp SRCS_MIW+= TextAPI/MachO/TextStubCommon.cpp SRCS_MIN+= ToolDrivers/llvm-dlltool/DlltoolDriver.cpp SRCS_MIW+= ToolDrivers/llvm-lib/LibDriver.cpp SRCS_MIN+= Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp SRCS_MIN+= Transforms/AggressiveInstCombine/TruncInstCombine.cpp SRCS_MIN+= Transforms/CFGuard/CFGuard.cpp SRCS_MIN+= Transforms/Coroutines/CoroCleanup.cpp SRCS_MIN+= Transforms/Coroutines/CoroEarly.cpp SRCS_MIN+= Transforms/Coroutines/CoroElide.cpp SRCS_MIN+= Transforms/Coroutines/CoroFrame.cpp SRCS_MIN+= Transforms/Coroutines/CoroSplit.cpp SRCS_MIN+= Transforms/Coroutines/Coroutines.cpp SRCS_MIN+= Transforms/HelloNew/HelloWorld.cpp SRCS_MIN+= Transforms/IPO/AlwaysInliner.cpp SRCS_MIN+= Transforms/IPO/Annotation2Metadata.cpp SRCS_MIN+= Transforms/IPO/ArgumentPromotion.cpp SRCS_MIN+= Transforms/IPO/Attributor.cpp SRCS_MIN+= Transforms/IPO/AttributorAttributes.cpp SRCS_MIN+= Transforms/IPO/BarrierNoopPass.cpp SRCS_MIN+= Transforms/IPO/BlockExtractor.cpp SRCS_MIN+= Transforms/IPO/CalledValuePropagation.cpp SRCS_MIN+= Transforms/IPO/ConstantMerge.cpp SRCS_MIN+= Transforms/IPO/CrossDSOCFI.cpp SRCS_MIN+= Transforms/IPO/DeadArgumentElimination.cpp SRCS_MIN+= Transforms/IPO/ElimAvailExtern.cpp SRCS_MIN+= Transforms/IPO/ExtractGV.cpp SRCS_MIN+= Transforms/IPO/ForceFunctionAttrs.cpp SRCS_MIN+= Transforms/IPO/FunctionAttrs.cpp SRCS_MIN+= Transforms/IPO/FunctionImport.cpp SRCS_MIN+= Transforms/IPO/GlobalDCE.cpp SRCS_MIN+= Transforms/IPO/GlobalOpt.cpp SRCS_MIN+= Transforms/IPO/GlobalSplit.cpp SRCS_MIN+= Transforms/IPO/HotColdSplitting.cpp SRCS_EXT+= Transforms/IPO/IPO.cpp SRCS_MIN+= Transforms/IPO/IROutliner.cpp SRCS_MIN+= Transforms/IPO/InferFunctionAttrs.cpp SRCS_MIN+= Transforms/IPO/InlineSimple.cpp SRCS_MIN+= Transforms/IPO/Inliner.cpp SRCS_MIN+= Transforms/IPO/Internalize.cpp SRCS_MIN+= Transforms/IPO/LoopExtractor.cpp SRCS_MIN+= Transforms/IPO/LowerTypeTests.cpp SRCS_MIN+= Transforms/IPO/MergeFunctions.cpp SRCS_MIN+= Transforms/IPO/OpenMPOpt.cpp SRCS_MIN+= Transforms/IPO/PartialInlining.cpp SRCS_MIN+= Transforms/IPO/PassManagerBuilder.cpp SRCS_MIN+= Transforms/IPO/PruneEH.cpp SRCS_MIN+= Transforms/IPO/SCCP.cpp SRCS_MIN+= Transforms/IPO/SampleContextTracker.cpp SRCS_MIN+= Transforms/IPO/SampleProfile.cpp SRCS_MIN+= Transforms/IPO/SampleProfileProbe.cpp SRCS_MIN+= Transforms/IPO/StripDeadPrototypes.cpp SRCS_MIN+= Transforms/IPO/StripSymbols.cpp SRCS_MIN+= Transforms/IPO/SyntheticCountsPropagation.cpp SRCS_MIN+= Transforms/IPO/ThinLTOBitcodeWriter.cpp SRCS_MIN+= Transforms/IPO/WholeProgramDevirt.cpp SRCS_MIN+= Transforms/InstCombine/InstCombineAddSub.cpp SRCS_MIN+= Transforms/InstCombine/InstCombineAndOrXor.cpp SRCS_MIN+= Transforms/InstCombine/InstCombineAtomicRMW.cpp SRCS_MIN+= Transforms/InstCombine/InstCombineCalls.cpp SRCS_MIN+= Transforms/InstCombine/InstCombineCasts.cpp SRCS_MIN+= Transforms/InstCombine/InstCombineCompares.cpp SRCS_MIN+= Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp SRCS_MIN+= Transforms/InstCombine/InstCombineMulDivRem.cpp SRCS_MIN+= Transforms/InstCombine/InstCombineNegator.cpp SRCS_MIN+= Transforms/InstCombine/InstCombinePHI.cpp SRCS_MIN+= Transforms/InstCombine/InstCombineSelect.cpp SRCS_MIN+= Transforms/InstCombine/InstCombineShifts.cpp SRCS_MIN+= Transforms/InstCombine/InstCombineSimplifyDemanded.cpp SRCS_MIN+= Transforms/InstCombine/InstCombineVectorOps.cpp SRCS_MIN+= Transforms/InstCombine/InstructionCombining.cpp SRCS_MIN+= Transforms/Instrumentation/AddressSanitizer.cpp SRCS_MIN+= Transforms/Instrumentation/BoundsChecking.cpp SRCS_MIN+= Transforms/Instrumentation/CGProfile.cpp SRCS_MIN+= Transforms/Instrumentation/ControlHeightReduction.cpp SRCS_MIN+= Transforms/Instrumentation/DataFlowSanitizer.cpp SRCS_MIN+= Transforms/Instrumentation/GCOVProfiling.cpp SRCS_MIN+= Transforms/Instrumentation/HWAddressSanitizer.cpp SRCS_MIN+= Transforms/Instrumentation/IndirectCallPromotion.cpp SRCS_MIN+= Transforms/Instrumentation/InstrOrderFile.cpp SRCS_MIN+= Transforms/Instrumentation/InstrProfiling.cpp SRCS_MIN+= Transforms/Instrumentation/Instrumentation.cpp SRCS_MIN+= Transforms/Instrumentation/MemProfiler.cpp SRCS_MIN+= Transforms/Instrumentation/MemorySanitizer.cpp SRCS_MIN+= Transforms/Instrumentation/PGOInstrumentation.cpp SRCS_MIN+= Transforms/Instrumentation/PGOMemOPSizeOpt.cpp SRCS_MIN+= Transforms/Instrumentation/PoisonChecking.cpp SRCS_MIN+= Transforms/Instrumentation/SanitizerCoverage.cpp SRCS_MIN+= Transforms/Instrumentation/ThreadSanitizer.cpp SRCS_MIN+= Transforms/Instrumentation/ValueProfileCollector.cpp SRCS_MIN+= Transforms/ObjCARC/DependencyAnalysis.cpp SRCS_EXT+= Transforms/ObjCARC/ObjCARC.cpp SRCS_MIN+= Transforms/ObjCARC/ObjCARCAPElim.cpp SRCS_MIN+= Transforms/ObjCARC/ObjCARCContract.cpp SRCS_MIN+= Transforms/ObjCARC/ObjCARCExpand.cpp SRCS_MIN+= Transforms/ObjCARC/ObjCARCOpts.cpp SRCS_MIN+= Transforms/ObjCARC/ProvenanceAnalysis.cpp SRCS_MIN+= Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp SRCS_MIN+= Transforms/ObjCARC/PtrState.cpp SRCS_MIN+= Transforms/Scalar/ADCE.cpp SRCS_MIN+= Transforms/Scalar/AlignmentFromAssumptions.cpp SRCS_MIN+= Transforms/Scalar/AnnotationRemarks.cpp SRCS_MIN+= Transforms/Scalar/BDCE.cpp SRCS_MIN+= Transforms/Scalar/CallSiteSplitting.cpp SRCS_MIN+= Transforms/Scalar/ConstantHoisting.cpp SRCS_MIN+= Transforms/Scalar/ConstraintElimination.cpp SRCS_MIN+= Transforms/Scalar/CorrelatedValuePropagation.cpp SRCS_MIN+= Transforms/Scalar/DCE.cpp SRCS_MIN+= Transforms/Scalar/DeadStoreElimination.cpp SRCS_MIN+= Transforms/Scalar/DivRemPairs.cpp SRCS_MIN+= Transforms/Scalar/EarlyCSE.cpp SRCS_MIN+= Transforms/Scalar/FlattenCFGPass.cpp SRCS_MIN+= Transforms/Scalar/Float2Int.cpp SRCS_MIN+= Transforms/Scalar/GVN.cpp SRCS_MIN+= Transforms/Scalar/GVNHoist.cpp SRCS_MIN+= Transforms/Scalar/GVNSink.cpp SRCS_MIN+= Transforms/Scalar/GuardWidening.cpp SRCS_MIN+= Transforms/Scalar/IVUsersPrinter.cpp SRCS_MIN+= Transforms/Scalar/IndVarSimplify.cpp SRCS_MIN+= Transforms/Scalar/InductiveRangeCheckElimination.cpp SRCS_MIN+= Transforms/Scalar/InferAddressSpaces.cpp SRCS_MIN+= Transforms/Scalar/InstSimplifyPass.cpp SRCS_MIN+= Transforms/Scalar/JumpThreading.cpp SRCS_MIN+= Transforms/Scalar/LICM.cpp SRCS_MIN+= Transforms/Scalar/LoopAccessAnalysisPrinter.cpp SRCS_MIN+= Transforms/Scalar/LoopDataPrefetch.cpp SRCS_MIN+= Transforms/Scalar/LoopDeletion.cpp SRCS_MIN+= Transforms/Scalar/LoopDistribute.cpp SRCS_MIN+= Transforms/Scalar/LoopFlatten.cpp SRCS_MIN+= Transforms/Scalar/LoopFuse.cpp SRCS_MIN+= Transforms/Scalar/LoopIdiomRecognize.cpp SRCS_MIN+= Transforms/Scalar/LoopInstSimplify.cpp SRCS_MIN+= Transforms/Scalar/LoopInterchange.cpp SRCS_MIN+= Transforms/Scalar/LoopLoadElimination.cpp SRCS_MIN+= Transforms/Scalar/LoopPassManager.cpp SRCS_MIN+= Transforms/Scalar/LoopPredication.cpp SRCS_MIN+= Transforms/Scalar/LoopRerollPass.cpp SRCS_MIN+= Transforms/Scalar/LoopRotation.cpp SRCS_MIN+= Transforms/Scalar/LoopSimplifyCFG.cpp SRCS_MIN+= Transforms/Scalar/LoopSink.cpp SRCS_MIN+= Transforms/Scalar/LoopStrengthReduce.cpp SRCS_MIN+= Transforms/Scalar/LoopUnrollPass.cpp SRCS_MIN+= Transforms/Scalar/LoopUnrollAndJamPass.cpp SRCS_MIN+= Transforms/Scalar/LoopUnswitch.cpp SRCS_MIN+= Transforms/Scalar/LoopVersioningLICM.cpp SRCS_MIN+= Transforms/Scalar/LowerAtomic.cpp SRCS_MIN+= Transforms/Scalar/LowerConstantIntrinsics.cpp SRCS_MIN+= Transforms/Scalar/LowerExpectIntrinsic.cpp SRCS_MIN+= Transforms/Scalar/LowerGuardIntrinsic.cpp SRCS_MIN+= Transforms/Scalar/LowerMatrixIntrinsics.cpp SRCS_MIN+= Transforms/Scalar/LowerWidenableCondition.cpp SRCS_MIN+= Transforms/Scalar/MakeGuardsExplicit.cpp SRCS_MIN+= Transforms/Scalar/MemCpyOptimizer.cpp SRCS_MIN+= Transforms/Scalar/MergeICmps.cpp SRCS_MIN+= Transforms/Scalar/MergedLoadStoreMotion.cpp SRCS_MIN+= Transforms/Scalar/NaryReassociate.cpp SRCS_MIN+= Transforms/Scalar/NewGVN.cpp SRCS_MIN+= Transforms/Scalar/PartiallyInlineLibCalls.cpp SRCS_MIN+= Transforms/Scalar/PlaceSafepoints.cpp SRCS_MIN+= Transforms/Scalar/Reassociate.cpp SRCS_MIN+= Transforms/Scalar/Reg2Mem.cpp SRCS_MIN+= Transforms/Scalar/RewriteStatepointsForGC.cpp SRCS_MIN+= Transforms/Scalar/SCCP.cpp SRCS_MIN+= Transforms/Scalar/SROA.cpp SRCS_EXT+= Transforms/Scalar/Scalar.cpp SRCS_MIN+= Transforms/Scalar/ScalarizeMaskedMemIntrin.cpp SRCS_MIN+= Transforms/Scalar/Scalarizer.cpp SRCS_MIN+= Transforms/Scalar/SeparateConstOffsetFromGEP.cpp SRCS_MIN+= Transforms/Scalar/SimpleLoopUnswitch.cpp SRCS_MIN+= Transforms/Scalar/SimplifyCFGPass.cpp SRCS_MIN+= Transforms/Scalar/Sink.cpp SRCS_MIN+= Transforms/Scalar/SpeculateAroundPHIs.cpp SRCS_MIN+= Transforms/Scalar/SpeculativeExecution.cpp SRCS_MIN+= Transforms/Scalar/StraightLineStrengthReduce.cpp SRCS_MIN+= Transforms/Scalar/StructurizeCFG.cpp SRCS_MIN+= Transforms/Scalar/TailRecursionElimination.cpp SRCS_MIN+= Transforms/Scalar/WarnMissedTransforms.cpp SRCS_MIN+= Transforms/Utils/AMDGPUEmitPrintf.cpp SRCS_MIN+= Transforms/Utils/ASanStackFrameLayout.cpp SRCS_MIN+= Transforms/Utils/AddDiscriminators.cpp SRCS_MIN+= Transforms/Utils/AssumeBundleBuilder.cpp SRCS_MIN+= Transforms/Utils/BasicBlockUtils.cpp SRCS_MIN+= Transforms/Utils/BreakCriticalEdges.cpp SRCS_MIN+= Transforms/Utils/BuildLibCalls.cpp SRCS_MIN+= Transforms/Utils/BypassSlowDivision.cpp SRCS_MIN+= Transforms/Utils/CallGraphUpdater.cpp SRCS_MIN+= Transforms/Utils/CallPromotionUtils.cpp SRCS_MIN+= Transforms/Utils/CanonicalizeAliases.cpp SRCS_MIN+= Transforms/Utils/CanonicalizeFreezeInLoops.cpp SRCS_MIN+= Transforms/Utils/CloneFunction.cpp SRCS_MIN+= Transforms/Utils/CloneModule.cpp SRCS_MIN+= Transforms/Utils/CodeExtractor.cpp SRCS_MIN+= Transforms/Utils/CodeMoverUtils.cpp SRCS_MIN+= Transforms/Utils/CtorUtils.cpp SRCS_MIN+= Transforms/Utils/Debugify.cpp SRCS_MIN+= Transforms/Utils/DemoteRegToStack.cpp SRCS_MIN+= Transforms/Utils/EntryExitInstrumenter.cpp SRCS_MIN+= Transforms/Utils/EscapeEnumerator.cpp SRCS_MIN+= Transforms/Utils/Evaluator.cpp SRCS_MIN+= Transforms/Utils/FixIrreducible.cpp SRCS_MIN+= Transforms/Utils/FlattenCFG.cpp SRCS_MIN+= Transforms/Utils/FunctionComparator.cpp SRCS_MIN+= Transforms/Utils/FunctionImportUtils.cpp SRCS_MIN+= Transforms/Utils/GlobalStatus.cpp SRCS_MIN+= Transforms/Utils/GuardUtils.cpp SRCS_MIN+= Transforms/Utils/InjectTLIMappings.cpp SRCS_MIN+= Transforms/Utils/InlineFunction.cpp SRCS_MIN+= Transforms/Utils/InstructionNamer.cpp SRCS_MIN+= Transforms/Utils/IntegerDivision.cpp SRCS_MIN+= Transforms/Utils/LCSSA.cpp SRCS_MIN+= Transforms/Utils/LibCallsShrinkWrap.cpp SRCS_MIN+= Transforms/Utils/Local.cpp SRCS_MIN+= Transforms/Utils/LoopPeel.cpp SRCS_MIN+= Transforms/Utils/LoopSimplify.cpp SRCS_MIN+= Transforms/Utils/LoopRotationUtils.cpp SRCS_MIN+= Transforms/Utils/LoopUnroll.cpp SRCS_MIN+= Transforms/Utils/LoopUnrollAndJam.cpp SRCS_MIN+= Transforms/Utils/LoopUnrollRuntime.cpp SRCS_MIN+= Transforms/Utils/LoopUtils.cpp SRCS_MIN+= Transforms/Utils/LoopVersioning.cpp SRCS_MIN+= Transforms/Utils/LowerInvoke.cpp SRCS_MIN+= Transforms/Utils/LowerSwitch.cpp SRCS_MIN+= Transforms/Utils/MatrixUtils.cpp SRCS_MIN+= Transforms/Utils/Mem2Reg.cpp SRCS_MIN+= Transforms/Utils/MetaRenamer.cpp SRCS_MIN+= Transforms/Utils/ModuleUtils.cpp SRCS_MIN+= Transforms/Utils/NameAnonGlobals.cpp SRCS_MIN+= Transforms/Utils/PredicateInfo.cpp SRCS_MIN+= Transforms/Utils/PromoteMemoryToRegister.cpp SRCS_MIN+= Transforms/Utils/SSAUpdater.cpp SRCS_MIN+= Transforms/Utils/SanitizerStats.cpp SRCS_MIN+= Transforms/Utils/ScalarEvolutionExpander.cpp SRCS_MIN+= Transforms/Utils/SimplifyCFG.cpp SRCS_MIN+= Transforms/Utils/SimplifyIndVar.cpp SRCS_MIN+= Transforms/Utils/SimplifyLibCalls.cpp SRCS_MIN+= Transforms/Utils/SizeOpts.cpp SRCS_MIN+= Transforms/Utils/SplitModule.cpp SRCS_MIN+= Transforms/Utils/StripGCRelocates.cpp SRCS_MIN+= Transforms/Utils/StripNonLineTableDebugInfo.cpp SRCS_MIN+= Transforms/Utils/SymbolRewriter.cpp SRCS_MIN+= Transforms/Utils/UnifyFunctionExitNodes.cpp SRCS_MIN+= Transforms/Utils/UnifyLoopExits.cpp SRCS_MIN+= Transforms/Utils/UniqueInternalLinkageNames.cpp SRCS_EXT+= Transforms/Utils/Utils.cpp SRCS_MIN+= Transforms/Utils/VNCoercion.cpp SRCS_MIN+= Transforms/Utils/ValueMapper.cpp SRCS_MIN+= Transforms/Vectorize/LoadStoreVectorizer.cpp SRCS_MIN+= Transforms/Vectorize/LoopVectorizationLegality.cpp SRCS_MIN+= Transforms/Vectorize/LoopVectorize.cpp SRCS_MIN+= Transforms/Vectorize/SLPVectorizer.cpp SRCS_MIN+= Transforms/Vectorize/VPlan.cpp SRCS_MIN+= Transforms/Vectorize/VPlanHCFGBuilder.cpp SRCS_MIN+= Transforms/Vectorize/VPlanPredicator.cpp SRCS_MIN+= Transforms/Vectorize/VPlanTransforms.cpp SRCS_MIN+= Transforms/Vectorize/VPlanVerifier.cpp SRCS_MIN+= Transforms/Vectorize/VectorCombine.cpp SRCS_EXT+= Transforms/Vectorize/Vectorize.cpp SRCS_EXT+= XRay/BlockIndexer.cpp SRCS_EXT+= XRay/BlockVerifier.cpp SRCS_EXT+= XRay/FDRRecordProducer.cpp SRCS_EXT+= XRay/FDRRecords.cpp SRCS_EXT+= XRay/FDRTraceExpander.cpp SRCS_EXT+= XRay/FileHeaderReader.cpp SRCS_EXT+= XRay/InstrumentationMap.cpp SRCS_EXT+= XRay/LogBuilderConsumer.cpp SRCS_EXT+= XRay/RecordInitializer.cpp SRCS_EXT+= XRay/Trace.cpp SRCS_ALL+= ${SRCS_MIN} .if !defined(TOOLS_PREFIX) || ${MK_LLD_BOOTSTRAP} != "no" SRCS_ALL+= ${SRCS_MIW} .endif .if ${MK_CLANG_EXTRAS} != "no" SRCS_ALL+= ${SRCS_EXT} .endif .if ${MK_CLANG_FULL} != "no" SRCS_ALL+= ${SRCS_FUL} .endif .if ${MK_CLANG_EXTRAS} != "no" || ${MK_LLD} != "no" || \ (defined(TOOLS_PREFIX) && ${MK_LLD_BOOTSTRAP} != "no") SRCS_ALL+= ${SRCS_EXL} .endif .if ${MK_LLD} != "no" || \ (defined(TOOLS_PREFIX) && ${MK_LLD_BOOTSTRAP} != "no") SRCS_ALL+= ${SRCS_LLD} .endif .if ${MK_CLANG_EXTRAS} != "no" || ${MK_LLDB} != "no" SRCS_ALL+= ${SRCS_XDB} .endif .if ${MK_CLANG_EXTRAS} != "no" || ${MK_LLDB} != "no" || ${MK_LLD} != "no" || \ (defined(TOOLS_PREFIX) && ${MK_LLD_BOOTSTRAP} != "no") SRCS_ALL+= ${SRCS_XDL} .endif .if ${MK_CLANG_EXTRAS} != "no" || ${MK_LLDB} != "no" || !defined(TOOLS_PREFIX) SRCS_ALL+= ${SRCS_XDW} .endif SRCS+= ${GENSRCS} SRCS+= ${SRCS_ALL:O} llvm/Frontend/OpenMP/OMP.h.inc: ${LLVM_SRCS}/include/llvm/Frontend/OpenMP/OMP.td ${LLVM_TBLGEN} --gen-directive-decl \ -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \ ${LLVM_SRCS}/include/llvm/Frontend/OpenMP/OMP.td TGHDRS+= llvm/Frontend/OpenMP/OMP.h.inc llvm/Frontend/OpenMP/OMP.inc: ${LLVM_SRCS}/include/llvm/Frontend/OpenMP/OMP.td ${LLVM_TBLGEN} --gen-directive-gen \ -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \ ${LLVM_SRCS}/include/llvm/Frontend/OpenMP/OMP.td TGHDRS+= llvm/Frontend/OpenMP/OMP.inc OMP.cpp: ${LLVM_SRCS}/include/llvm/Frontend/OpenMP/OMP.td ${LLVM_TBLGEN} --gen-directive-impl \ -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \ ${LLVM_SRCS}/include/llvm/Frontend/OpenMP/OMP.td GENSRCS+= OMP.cpp llvm/IR/Attributes.inc: ${LLVM_SRCS}/include/llvm/IR/Attributes.td ${LLVM_TBLGEN} -gen-attrs \ -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \ ${LLVM_SRCS}/include/llvm/IR/Attributes.td TGHDRS+= llvm/IR/Attributes.inc llvm/IR/IntrinsicEnums.inc: ${LLVM_SRCS}/include/llvm/IR/Intrinsics.td ${LLVM_TBLGEN} -gen-intrinsic-enums \ -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \ ${LLVM_SRCS}/include/llvm/IR/Intrinsics.td TGHDRS+= llvm/IR/IntrinsicEnums.inc llvm/IR/IntrinsicImpl.inc: ${LLVM_SRCS}/include/llvm/IR/Intrinsics.td ${LLVM_TBLGEN} -gen-intrinsic-impl \ -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \ ${LLVM_SRCS}/include/llvm/IR/Intrinsics.td TGHDRS+= llvm/IR/IntrinsicImpl.inc .for arch in \ AArch64/aarch64 AMDGPU/amdgcn ARM/arm BPF/bpf Hexagon/hexagon \ Mips/mips NVPTX/nvvm PowerPC/ppc R600/r600 RISCV/riscv S390/s390 \ VE/ve WebAssembly/wasm X86/x86 XCore/xcore llvm/IR/Intrinsics${arch:H}.h: ${LLVM_SRCS}/include/llvm/IR/Intrinsics.td ${LLVM_TBLGEN} -gen-intrinsic-enums -intrinsic-prefix=${arch:T} \ -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \ ${LLVM_SRCS}/include/llvm/IR/Intrinsics.td TGHDRS+= llvm/IR/Intrinsics${arch:H}.h .endfor llvm-lib/Options.inc: ${LLVM_SRCS}/lib/ToolDrivers/llvm-lib/Options.td ${LLVM_TBLGEN} -gen-opt-parser-defs \ -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \ ${LLVM_SRCS}/lib/ToolDrivers/llvm-lib/Options.td TGHDRS+= llvm-lib/Options.inc CFLAGS.LibDriver.cpp+= -I${.OBJDIR}/llvm-lib llvm-dlltool/Options.inc: ${LLVM_SRCS}/lib/ToolDrivers/llvm-dlltool/Options.td ${LLVM_TBLGEN} -gen-opt-parser-defs \ -I ${LLVM_SRCS}/include -d ${.TARGET}.d -o ${.TARGET} \ ${LLVM_SRCS}/lib/ToolDrivers/llvm-dlltool/Options.td TGHDRS+= llvm-dlltool/Options.inc CFLAGS.DlltoolDriver.cpp+= -I${.OBJDIR}/llvm-dlltool beforebuild: # 20170724 remove stale Options.inc file, of which there are two different # versions after upstream r308421, one for llvm-lib, one for llvm-dlltool .for f in Options.inc .if exists(${f}) || exists(${f}.d) @echo Removing stale generated ${f} files @rm -f ${f} ${f}.d .endif .endfor # Note: some rules are superfluous, not every combination is valid. .for arch in \ AArch64/AArch64 ARM/ARM BPF/BPF Mips/Mips PowerPC/PPC RISCV/RISCV \ X86/X86 . for hdr in \ AsmMatcher/-gen-asm-matcher \ AsmWriter/-gen-asm-writer \ AsmWriter1/-gen-asm-writer,-asmwriternum=1 \ CallingConv/-gen-callingconv \ CodeEmitter/-gen-emitter \ CompressInstEmitter/-gen-compress-inst-emitter \ DAGISel/-gen-dag-isel \ DisassemblerTables/-gen-disassembler \ EVEX2VEXTables/-gen-x86-EVEX2VEX-tables \ FastISel/-gen-fast-isel \ GlobalISel/-gen-global-isel \ InstrInfo/-gen-instr-info \ MCCodeEmitter/-gen-emitter \ MCPseudoLowering/-gen-pseudo-lowering \ PostLegalizeGICombiner/-gen-global-isel-combiner,-combiners=${arch:H}PostLegalizerCombinerHelper \ PostLegalizeGILowering/-gen-global-isel-combiner,-combiners=${arch:H}PostLegalizerLoweringHelper \ PreLegalizeGICombiner/-gen-global-isel-combiner,-combiners=${arch:H}PreLegalizerCombinerHelper \ RegisterBank/-gen-register-bank \ RegisterInfo/-gen-register-info \ SearchableTables/-gen-searchable-tables \ SubtargetInfo/-gen-subtarget \ SystemOperands/-gen-searchable-tables \ SystemRegister/-gen-searchable-tables ${arch:T}Gen${hdr:H}.inc: ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td ${LLVM_TBLGEN} ${hdr:T:C/,/ /g} \ -I ${LLVM_SRCS}/include -I ${LLVM_SRCS}/lib/Target/${arch:H} \ -d ${.TARGET}.d -o ${.TARGET} \ ${LLVM_SRCS}/lib/Target/${arch:H}/${arch:T}.td . endfor .endfor .if ${MK_LLVM_TARGET_AARCH64} != "no" TGHDRS+= AArch64GenAsmMatcher.inc TGHDRS+= AArch64GenAsmWriter.inc TGHDRS+= AArch64GenAsmWriter1.inc TGHDRS+= AArch64GenCallingConv.inc TGHDRS+= AArch64GenDAGISel.inc TGHDRS+= AArch64GenDisassemblerTables.inc TGHDRS+= AArch64GenFastISel.inc TGHDRS+= AArch64GenGlobalISel.inc TGHDRS+= AArch64GenInstrInfo.inc TGHDRS+= AArch64GenMCCodeEmitter.inc TGHDRS+= AArch64GenMCPseudoLowering.inc TGHDRS+= AArch64GenPostLegalizeGICombiner.inc TGHDRS+= AArch64GenPostLegalizeGILowering.inc TGHDRS+= AArch64GenPreLegalizeGICombiner.inc TGHDRS+= AArch64GenRegisterBank.inc TGHDRS+= AArch64GenRegisterInfo.inc TGHDRS+= AArch64GenSubtargetInfo.inc TGHDRS+= AArch64GenSystemOperands.inc .endif # MK_LLVM_TARGET_AARCH64 .if ${MK_LLVM_TARGET_ARM} != "no" TGHDRS+= ARMGenAsmMatcher.inc TGHDRS+= ARMGenAsmWriter.inc TGHDRS+= ARMGenCallingConv.inc TGHDRS+= ARMGenDAGISel.inc TGHDRS+= ARMGenDisassemblerTables.inc TGHDRS+= ARMGenFastISel.inc TGHDRS+= ARMGenGlobalISel.inc TGHDRS+= ARMGenInstrInfo.inc TGHDRS+= ARMGenMCCodeEmitter.inc TGHDRS+= ARMGenMCPseudoLowering.inc TGHDRS+= ARMGenRegisterBank.inc TGHDRS+= ARMGenRegisterInfo.inc TGHDRS+= ARMGenSubtargetInfo.inc TGHDRS+= ARMGenSystemRegister.inc .endif # MK_LLVM_TARGET_ARM .if ${MK_LLVM_TARGET_BPF} != "no" TGHDRS+= BPFGenAsmMatcher.inc TGHDRS+= BPFGenAsmWriter.inc TGHDRS+= BPFGenCallingConv.inc TGHDRS+= BPFGenDAGISel.inc TGHDRS+= BPFGenDisassemblerTables.inc TGHDRS+= BPFGenInstrInfo.inc TGHDRS+= BPFGenMCCodeEmitter.inc TGHDRS+= BPFGenRegisterInfo.inc TGHDRS+= BPFGenSubtargetInfo.inc .endif # MK_LLVM_TARGET_BPF .if ${MK_LLVM_TARGET_MIPS} != "no" TGHDRS+= MipsGenAsmMatcher.inc TGHDRS+= MipsGenAsmWriter.inc TGHDRS+= MipsGenCallingConv.inc TGHDRS+= MipsGenDAGISel.inc TGHDRS+= MipsGenDisassemblerTables.inc TGHDRS+= MipsGenFastISel.inc TGHDRS+= MipsGenGlobalISel.inc TGHDRS+= MipsGenInstrInfo.inc TGHDRS+= MipsGenMCCodeEmitter.inc TGHDRS+= MipsGenMCPseudoLowering.inc TGHDRS+= MipsGenRegisterBank.inc TGHDRS+= MipsGenRegisterInfo.inc TGHDRS+= MipsGenSubtargetInfo.inc .endif # MK_LLVM_TARGET_MIPS .if ${MK_LLVM_TARGET_POWERPC} != "no" TGHDRS+= PPCGenAsmMatcher.inc TGHDRS+= PPCGenAsmWriter.inc TGHDRS+= PPCGenCallingConv.inc TGHDRS+= PPCGenDAGISel.inc TGHDRS+= PPCGenDisassemblerTables.inc TGHDRS+= PPCGenFastISel.inc TGHDRS+= PPCGenGlobalISel.inc TGHDRS+= PPCGenInstrInfo.inc TGHDRS+= PPCGenMCCodeEmitter.inc TGHDRS+= PPCGenRegisterBank.inc TGHDRS+= PPCGenRegisterInfo.inc TGHDRS+= PPCGenSubtargetInfo.inc .endif # MK_LLVM_TARGET_POWERPC .if ${MK_LLVM_TARGET_RISCV} != "no" TGHDRS+= RISCVGenAsmMatcher.inc TGHDRS+= RISCVGenAsmWriter.inc TGHDRS+= RISCVGenCallingConv.inc TGHDRS+= RISCVGenCompressInstEmitter.inc TGHDRS+= RISCVGenDAGISel.inc TGHDRS+= RISCVGenDisassemblerTables.inc TGHDRS+= RISCVGenDAGISel.inc TGHDRS+= RISCVGenGlobalISel.inc TGHDRS+= RISCVGenInstrInfo.inc TGHDRS+= RISCVGenMCCodeEmitter.inc TGHDRS+= RISCVGenMCPseudoLowering.inc TGHDRS+= RISCVGenRegisterBank.inc TGHDRS+= RISCVGenRegisterInfo.inc TGHDRS+= RISCVGenSearchableTables.inc TGHDRS+= RISCVGenSubtargetInfo.inc TGHDRS+= RISCVGenSystemOperands.inc .endif # MK_LLVM_TARGET_RISCV .if ${MK_LLVM_TARGET_X86} != "no" TGHDRS+= X86GenAsmMatcher.inc TGHDRS+= X86GenAsmWriter.inc TGHDRS+= X86GenAsmWriter1.inc TGHDRS+= X86GenCallingConv.inc TGHDRS+= X86GenDAGISel.inc TGHDRS+= X86GenDisassemblerTables.inc TGHDRS+= X86GenEVEX2VEXTables.inc TGHDRS+= X86GenFastISel.inc TGHDRS+= X86GenGlobalISel.inc TGHDRS+= X86GenInstrInfo.inc TGHDRS+= X86GenRegisterBank.inc TGHDRS+= X86GenRegisterInfo.inc TGHDRS+= X86GenSubtargetInfo.inc .endif # MK_LLVM_TARGET_X86 DEPENDFILES+= ${TGHDRS:C/$/.d/} DPSRCS+= ${TGHDRS} CLEANFILES+= ${TGHDRS} ${TGHDRS:C/$/.d/} CLEANFILES+= ${GENSRCS} ${GENSRCS:C/$/.d/} .include "../llvm.build.mk" .include diff --git a/lib/clang/llvm.build.mk b/lib/clang/llvm.build.mk index ef271e85bf3f..adb2300541f6 100644 --- a/lib/clang/llvm.build.mk +++ b/lib/clang/llvm.build.mk @@ -1,113 +1,125 @@ # $FreeBSD$ .include .ifndef LLVM_BASE .error Please define LLVM_BASE before including this file .endif .ifndef LLVM_SRCS .error Please define LLVM_SRCS before including this file .endif .ifndef SRCDIR .error Please define SRCDIR before including this file .endif .PATH: ${LLVM_BASE}/${SRCDIR} CFLAGS+= -I${SRCTOP}/lib/clang/include CFLAGS+= -I${LLVM_SRCS}/include CFLAGS+= -D__STDC_CONSTANT_MACROS CFLAGS+= -D__STDC_FORMAT_MACROS CFLAGS+= -D__STDC_LIMIT_MACROS CFLAGS+= -DHAVE_VCS_VERSION_INC .if ${MK_LLVM_ASSERTIONS} == "no" CFLAGS+= -DNDEBUG .endif TARGET_ARCH?= ${MACHINE_ARCH} BUILD_ARCH?= ${MACHINE_ARCH} # Armv6 and armv7 uses hard float abi, unless the CPUTYPE has soft in it. # arm (for armv4 and armv5 CPUs) always uses the soft float ABI. # For all other targets, we stick with 'unknown'. .if ${TARGET_ARCH:Marmv[67]*} && (!defined(CPUTYPE) || ${CPUTYPE:M*soft*} == "") TARGET_ABI= -gnueabihf .elif ${TARGET_ARCH:Marm*} TARGET_ABI= -gnueabi .else TARGET_ABI= .endif VENDOR= unknown OS_VERSION= freebsd13.0 LLVM_TARGET_TRIPLE?= ${TARGET_ARCH:C/amd64/x86_64/:C/[hs]f$//:S/mipsn32/mips64/}-${VENDOR}-${OS_VERSION}${TARGET_ABI} LLVM_BUILD_TRIPLE?= ${BUILD_ARCH:C/amd64/x86_64/:C/[hs]f$//:S/mipsn32/mips64/}-${VENDOR}-${OS_VERSION} CFLAGS+= -DLLVM_DEFAULT_TARGET_TRIPLE=\"${LLVM_TARGET_TRIPLE}\" CFLAGS+= -DLLVM_HOST_TRIPLE=\"${LLVM_BUILD_TRIPLE}\" CFLAGS+= -DDEFAULT_SYSROOT=\"${TOOLS_PREFIX}\" .if ${MK_LLVM_TARGET_AARCH64} != "no" CFLAGS+= -DLLVM_TARGET_ENABLE_AARCH64 . if ${MACHINE_CPUARCH} == "aarch64" LLVM_NATIVE_ARCH= AArch64 . endif .endif .if ${MK_LLVM_TARGET_ARM} != "no" CFLAGS+= -DLLVM_TARGET_ENABLE_ARM . if ${MACHINE_CPUARCH} == "arm" LLVM_NATIVE_ARCH= ARM . endif .endif .if ${MK_LLVM_TARGET_BPF} != "no" CFLAGS+= -DLLVM_TARGET_ENABLE_BPF .endif .if ${MK_LLVM_TARGET_MIPS} != "no" CFLAGS+= -DLLVM_TARGET_ENABLE_MIPS . if ${MACHINE_CPUARCH} == "mips" LLVM_NATIVE_ARCH= Mips . endif .endif .if ${MK_LLVM_TARGET_POWERPC} != "no" CFLAGS+= -DLLVM_TARGET_ENABLE_POWERPC . if ${MACHINE_CPUARCH} == "powerpc" LLVM_NATIVE_ARCH= PowerPC . endif .endif .if ${MK_LLVM_TARGET_RISCV} != "no" CFLAGS+= -DLLVM_TARGET_ENABLE_RISCV . if ${MACHINE_CPUARCH} == "riscv" LLVM_NATIVE_ARCH= RISCV . endif .endif .if ${MK_LLVM_TARGET_X86} != "no" CFLAGS+= -DLLVM_TARGET_ENABLE_X86 . if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" LLVM_NATIVE_ARCH= X86 . endif .endif .ifdef LLVM_NATIVE_ARCH CFLAGS+= -DLLVM_NATIVE_ASMPARSER=LLVMInitialize${LLVM_NATIVE_ARCH}AsmParser CFLAGS+= -DLLVM_NATIVE_ASMPRINTER=LLVMInitialize${LLVM_NATIVE_ARCH}AsmPrinter CFLAGS+= -DLLVM_NATIVE_DISASSEMBLER=LLVMInitialize${LLVM_NATIVE_ARCH}Disassembler CFLAGS+= -DLLVM_NATIVE_TARGET=LLVMInitialize${LLVM_NATIVE_ARCH}Target CFLAGS+= -DLLVM_NATIVE_TARGETINFO=LLVMInitialize${LLVM_NATIVE_ARCH}TargetInfo CFLAGS+= -DLLVM_NATIVE_TARGETMC=LLVMInitialize${LLVM_NATIVE_ARCH}TargetMC .endif CFLAGS+= -ffunction-sections CFLAGS+= -fdata-sections +.if ${LINKER_TYPE} == "mac" +LDFLAGS+= -Wl,-dead_strip +.else LDFLAGS+= -Wl,--gc-sections +.endif CXXSTD?= c++14 CXXFLAGS+= -fno-exceptions CXXFLAGS+= -fno-rtti +.if ${.MAKE.OS} == "FreeBSD" || !defined(BOOTSTRAPPING) +# Building on macOS/Linux needs the real sysctl() not the bootstrap tools stub. +CFLAGS+= -DBOOTSTRAPPING_WANT_NATIVE_SYSCTL +.else CXXFLAGS.clang+= -stdlib=libc++ +.endif +.if defined(BOOTSTRAPPING) && ${.MAKE.OS} == "Linux" +LIBADD+= dl +.endif .if ${MACHINE_ARCH:Mmips64} STATIC_CFLAGS+= -mxgot STATIC_CXXFLAGS+= -mxgot .endif diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk index 7c64d54e39f3..77c60aef0bc4 100644 --- a/share/mk/src.opts.mk +++ b/share/mk/src.opts.mk @@ -1,506 +1,498 @@ # $FreeBSD$ # # Option file for FreeBSD /usr/src builds. # # Users define WITH_FOO and WITHOUT_FOO on the command line or in /etc/src.conf # and /etc/make.conf files. These translate in the build system to MK_FOO={yes,no} # with sensible (usually) defaults. # # Makefiles must include bsd.opts.mk after defining specific MK_FOO options that # are applicable for that Makefile (typically there are none, but sometimes there # are exceptions). Recursive makes usually add MK_FOO=no for options that they wish # to omit from that make. # # Makefiles must include bsd.mkopt.mk before they test the value of any MK_FOO # variable. # # Makefiles may also assume that this file is included by src.opts.mk should it # need variables defined there prior to the end of the Makefile where # bsd.{subdir,lib.bin}.mk is traditionally included. # # The old-style YES_FOO and NO_FOO are being phased out. No new instances of them # should be added. Old instances should be removed since they were just to # bridge the gap between FreeBSD 4 and FreeBSD 5. # # Makefiles should never test WITH_FOO or WITHOUT_FOO directly (although an # exception is made for _WITHOUT_SRCONF which turns off this mechanism # completely inside bsd.*.mk files). # .if !target(____) ____: .include # # Define MK_* variables (which are either "yes" or "no") for users # to set via WITH_*/WITHOUT_* in /etc/src.conf and override in the # make(1) environment. # These should be tested with `== "no"' or `!= "no"' in makefiles. # The NO_* variables should only be set by makefiles for variables # that haven't been converted over. # # These options are used by the src builds. Those listed in # __DEFAULT_YES_OPTIONS default to 'yes' and will build unless turned # off. __DEFAULT_NO_OPTIONS will default to 'no' and won't build # unless turned on. Any options listed in 'BROKEN_OPTIONS' will be # hard-wired to 'no'. "Broken" here means not working or # not-appropriate and/or not supported. It doesn't imply something is # wrong with the code. There's not a single good word for this, so # BROKEN was selected as the least imperfect one considered at the # time. Options are added to BROKEN_OPTIONS list on a per-arch basis. # At this time, there's no provision for mutually incompatible options. __DEFAULT_YES_OPTIONS = \ ACCT \ ACPI \ APM \ AT \ ATM \ AUDIT \ AUTHPF \ AUTOFS \ BHYVE \ BLACKLIST \ BLUETOOTH \ BOOT \ BOOTPARAMD \ BOOTPD \ BSD_CPIO \ BSDINSTALL \ BSNMP \ BZIP2 \ CALENDAR \ CAPSICUM \ CAROOT \ CASPER \ CCD \ CDDL \ CLANG \ CLANG_BOOTSTRAP \ CLANG_IS_CC \ CLEAN \ CPP \ CROSS_COMPILER \ CRYPT \ CUSE \ CXX \ CXGBETOOL \ DIALOG \ DICT \ DMAGENT \ DYNAMICROOT \ EE \ EFI \ ELFTOOLCHAIN_BOOTSTRAP \ EXAMPLES \ FDT \ FILE \ FINGER \ FLOPPY \ FMTREE \ FORTH \ FP_LIBC \ FREEBSD_UPDATE \ FTP \ GAMES \ GH_BC \ GNU_DIFF \ GOOGLETEST \ GPIO \ HAST \ HTML \ HYPERV \ ICONV \ INET \ INET6 \ INETD \ IPFILTER \ IPFW \ ISCSI \ JAIL \ KDUMP \ KVM \ LDNS \ LDNS_UTILS \ LEGACY_CONSOLE \ LIBCPLUSPLUS \ LLD \ LLD_BOOTSTRAP \ LLD_IS_LD \ LLVM_COV \ LLVM_CXXFILT \ LLVM_TARGET_ALL \ LOADER_GELI \ LOADER_LUA \ LOADER_OFW \ LOADER_UBOOT \ LOCALES \ LOCATE \ LPR \ LS_COLORS \ MAIL \ MAILWRAPPER \ MAKE \ MALLOC_PRODUCTION \ MLX5TOOL \ NDIS \ NETCAT \ NETGRAPH \ NLS_CATALOGS \ NS_CACHING \ NTP \ NVME \ OFED \ OPENSSL \ PAM \ PF \ PKGBOOTSTRAP \ PMC \ PORTSNAP \ PPP \ QUOTAS \ RADIUS_SUPPORT \ RBOOTD \ REPRODUCIBLE_BUILD \ RESCUE \ ROUTED \ SENDMAIL \ SERVICESDB \ SETUID_LOGIN \ SHARED_TOOLCHAIN \ SHAREDOCS \ SOURCELESS \ SOURCELESS_HOST \ SOURCELESS_UCODE \ STATS \ SYSCONS \ SYSTEM_COMPILER \ SYSTEM_LINKER \ TALK \ TCP_WRAPPERS \ TCSH \ TELNET \ TEXTPROC \ TFTP \ UNBOUND \ USB \ UTMPX \ VI \ VT \ WIRELESS \ WPA_SUPPLICANT_EAPOL \ ZFS \ LOADER_ZFS \ ZONEINFO __DEFAULT_NO_OPTIONS = \ BEARSSL \ BHYVE_SNAPSHOT \ CLANG_EXTRAS \ CLANG_FORMAT \ DTRACE_TESTS \ EXPERIMENTAL \ HESIOD \ LIBSOFT \ LLVM_ASSERTIONS \ LOADER_FIREWIRE \ LOADER_VERBOSE \ LOADER_VERIEXEC_PASS_MANIFEST \ OFED_EXTRA \ OPENLDAP \ OPENSSL_KTLS \ RPCBIND_WARMSTART_SUPPORT \ SORT_THREADS \ SVN \ SVNLITE \ ZONEINFO_LEAPSECONDS_SUPPORT \ # LEFT/RIGHT. Left options which default to "yes" unless their corresponding # RIGHT option is disabled. __DEFAULT_DEPENDENT_OPTIONS= \ CLANG_FULL/CLANG \ LOADER_VERIEXEC/BEARSSL \ LOADER_EFI_SECUREBOOT/LOADER_VERIEXEC \ LOADER_VERIEXEC_VECTX/LOADER_VERIEXEC \ VERIEXEC/BEARSSL \ # MK_*_SUPPORT options which default to "yes" unless their corresponding # MK_* variable is set to "no". # .for var in \ BLACKLIST \ BZIP2 \ INET \ INET6 \ KERBEROS \ KVM \ NETGRAPH \ PAM \ TESTS \ WIRELESS __DEFAULT_DEPENDENT_OPTIONS+= ${var}_SUPPORT/${var} .endfor # # Default behaviour of some options depends on the architecture. Unfortunately # this means that we have to test TARGET_ARCH (the buildworld case) as well # as MACHINE_ARCH (the non-buildworld case). Normally TARGET_ARCH is not # used at all in bsd.*.mk, but we have to make an exception here if we want # to allow defaults for some things like clang to vary by target architecture. # Additional, per-target behavior should be rarely added only after much # gnashing of teeth and grinding of gears. # .if defined(TARGET_ARCH) __T=${TARGET_ARCH} .else __T=${MACHINE_ARCH} .endif # All supported backends for LLVM_TARGET_XXX __LLVM_TARGETS= \ aarch64 \ arm \ mips \ powerpc \ riscv \ x86 __LLVM_TARGET_FILT= C/(amd64|i386)/x86/:C/powerpc.*/powerpc/:C/armv[67]/arm/:C/riscv.*/riscv/:C/mips.*/mips/ .for __llt in ${__LLVM_TARGETS} # Default enable the given TARGET's LLVM_TARGET support .if ${__T:${__LLVM_TARGET_FILT}} == ${__llt} __DEFAULT_YES_OPTIONS+= LLVM_TARGET_${__llt:${__LLVM_TARGET_FILT}:tu} # aarch64 needs arm for -m32 support. .elif ${__T} == "aarch64" && ${__llt:Marm*} != "" __DEFAULT_DEPENDENT_OPTIONS+= LLVM_TARGET_ARM/LLVM_TARGET_AARCH64 # Default the rest of the LLVM_TARGETs to the value of MK_LLVM_TARGET_ALL. .else __DEFAULT_DEPENDENT_OPTIONS+= LLVM_TARGET_${__llt:${__LLVM_TARGET_FILT}:tu}/LLVM_TARGET_ALL .endif .endfor __DEFAULT_NO_OPTIONS+=LLVM_TARGET_BPF .include .if ${__T:Mriscv*} != "" BROKEN_OPTIONS+=OFED .endif .if ${__T} == "aarch64" || ${__T} == "amd64" || ${__T} == "i386" __DEFAULT_YES_OPTIONS+=LLDB .else __DEFAULT_NO_OPTIONS+=LLDB .endif # LIB32 is supported on amd64, mips64, and powerpc64 .if (${__T} == "amd64" || ${__T:Mmips64*} || ${__T} == "powerpc64") __DEFAULT_YES_OPTIONS+=LIB32 .else BROKEN_OPTIONS+=LIB32 .endif # Only doing soft float API stuff on armv6 and armv7 .if ${__T} != "armv6" && ${__T} != "armv7" BROKEN_OPTIONS+=LIBSOFT .endif .if ${__T:Mmips*} # GOOGLETEST cannot currently be compiled on mips due to external circumstances. # Notably, the freebsd-gcc port isn't linking in libgcc so we end up trying ot # link to a hidden symbol. LLVM would successfully link this in, but some of # the mips variants are broken under LLVM until LLVM 10. GOOGLETEST should be # marked no longer broken with the switch to LLVM. BROKEN_OPTIONS+=GOOGLETEST SSP .endif # EFI doesn't exist on mips or powerpc. .if ${__T:Mmips*} || ${__T:Mpowerpc*} BROKEN_OPTIONS+=EFI .endif # OFW is only for powerpc, exclude others .if ${__T:Mpowerpc*} == "" BROKEN_OPTIONS+=LOADER_OFW .endif # UBOOT is only for arm, mips and powerpc, exclude others .if ${__T:Marm*} == "" && ${__T:Mmips*} == "" && ${__T:Mpowerpc*} == "" BROKEN_OPTIONS+=LOADER_UBOOT .endif # GELI and Lua in loader currently cause boot failures on powerpc. # Further debugging is required -- probably they are just broken on big # endian systems generically (they jump to null pointers or try to read # crazy high addresses, which is typical of endianness problems). .if ${__T:Mpowerpc*} BROKEN_OPTIONS+=LOADER_GELI LOADER_LUA .endif .if ${__T:Mmips64*} # profiling won't work on MIPS64 because there is only assembly for o32 BROKEN_OPTIONS+=PROFILE .endif .if ${__T} != "aarch64" && ${__T} != "amd64" && ${__T} != "i386" && \ ${__T} != "powerpc64" BROKEN_OPTIONS+=CXGBETOOL BROKEN_OPTIONS+=MLX5TOOL .endif # HyperV is currently x86-only .if ${__T} != "amd64" && ${__T} != "i386" BROKEN_OPTIONS+=HYPERV .endif # NVME is only aarch64, x86 and powerpc64* .if ${__T} != "aarch64" && ${__T} != "amd64" && ${__T} != "i386" && \ ${__T:Mpowerpc64*} == "" BROKEN_OPTIONS+=NVME .endif .if ${__T} == "aarch64" || ${__T} == "amd64" || ${__T} == "i386" || \ ${__T:Mpowerpc64*} != "" __DEFAULT_YES_OPTIONS+=OPENMP .else __DEFAULT_NO_OPTIONS+=OPENMP .endif -.if ${.MAKE.OS} != "FreeBSD" -# Building the target compiler requires building tablegen on the host -# which is (currently) not possible on non-FreeBSD. -BROKEN_OPTIONS+=CLANG LLD LLDB -# The same also applies to the bootstrap LLVM. -BROKEN_OPTIONS+=CLANG_BOOTSTRAP LLD_BOOTSTRAP -.endif - .include # # Force some options off if their dependencies are off. # Order is somewhat important. # .if ${MK_CAPSICUM} == "no" MK_CASPER:= no .endif .if ${MK_SOURCELESS} == "no" MK_SOURCELESS_HOST:= no MK_SOURCELESS_UCODE:= no .endif .if ${MK_CDDL} == "no" MK_ZFS:= no MK_LOADER_ZFS:= no MK_CTF:= no .endif .if ${MK_CRYPT} == "no" MK_OPENSSL:= no MK_OPENSSH:= no MK_KERBEROS:= no MK_KERBEROS_SUPPORT:= no .endif .if ${MK_CXX} == "no" MK_CLANG:= no MK_GOOGLETEST:= no MK_TESTS:= no .endif .if ${MK_DIALOG} == "no" MK_BSDINSTALL:= no .endif .if ${MK_FILE} == "no" MK_SVNLITE:= no .endif .if ${MK_MAIL} == "no" MK_MAILWRAPPER:= no MK_SENDMAIL:= no MK_DMAGENT:= no .endif .if ${MK_NETGRAPH} == "no" MK_ATM:= no MK_BLUETOOTH:= no .endif .if ${MK_NLS} == "no" MK_NLS_CATALOGS:= no .endif .if ${MK_OPENSSL} == "no" MK_DMAGENT:= no MK_OPENSSH:= no MK_KERBEROS:= no MK_KERBEROS_SUPPORT:= no MK_LDNS:= no MK_PKGBOOTSTRAP:= no MK_SVN:= no MK_SVNLITE:= no MK_ZFS:= no .endif .if ${MK_LDNS} == "no" MK_LDNS_UTILS:= no MK_UNBOUND:= no .endif .if ${MK_PF} == "no" MK_AUTHPF:= no .endif .if ${MK_OFED} == "no" MK_OFED_EXTRA:= no .endif .if ${MK_TESTS} == "no" MK_DTRACE_TESTS:= no .endif .if ${MK_TESTS_SUPPORT} == "no" MK_GOOGLETEST:= no .endif .if ${MK_ZONEINFO} == "no" MK_ZONEINFO_LEAPSECONDS_SUPPORT:= no .endif .if ${MK_CROSS_COMPILER} == "no" MK_CLANG_BOOTSTRAP:= no MK_ELFTOOLCHAIN_BOOTSTRAP:= no MK_LLD_BOOTSTRAP:= no .endif .if ${MK_TOOLCHAIN} == "no" MK_CLANG:= no MK_INCLUDES:= no MK_LLD:= no MK_LLDB:= no .endif .if ${MK_CLANG} == "no" MK_CLANG_EXTRAS:= no MK_CLANG_FORMAT:= no MK_CLANG_FULL:= no MK_LLVM_COV:= no .endif .if ${MK_LOADER_VERIEXEC} == "no" MK_LOADER_VERIEXEC_PASS_MANIFEST := no .endif # # MK_* options whose default value depends on another option. # .for vv in \ GSSAPI/KERBEROS \ MAN_UTILS/MAN .if defined(WITH_${vv:H}) MK_${vv:H}:= yes .elif defined(WITHOUT_${vv:H}) MK_${vv:H}:= no .else MK_${vv:H}:= ${MK_${vv:T}} .endif .endfor # # Set defaults for the MK_*_SUPPORT variables. # .endif # !target(____) diff --git a/tools/build/cross-build/include/common/sys/sysctl.h b/tools/build/cross-build/include/common/sys/sysctl.h index 856f6be23421..6d6f5438c557 100644 --- a/tools/build/cross-build/include/common/sys/sysctl.h +++ b/tools/build/cross-build/include/common/sys/sysctl.h @@ -1,46 +1,52 @@ /*- * SPDX-License-Identifier: BSD-2-Clause * * Copyright 2018-2020 Alex Richardson * * This software was developed by SRI International and the University of * Cambridge Computer Laboratory (Department of Computer Science and * Technology) under DARPA contract HR0011-18-C-0016 ("ECATS"), as part of the * DARPA SSITH research programme. * * This software was developed by SRI International and the University of * Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237) * ("CTSRD"), as part of the DARPA CRASH research programme. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * $FreeBSD$ */ #pragma once +#ifdef BOOTSTRAPPING_WANT_NATIVE_SYSCTL +/* We need the real sysctl.h e.g. when bootstrapping the LLVM tools. */ +#include_next +#else +/* Otherwise, avoid sysctls since they might not be supported on the host. */ #include #define sysctlbyname __freebsd_sysctlbyname #define sysctl __freebsd_sysctl int sysctl(const int *, u_int, void *, size_t *, const void *, size_t); int sysctlbyname(const char *, void *, size_t *, const void *, size_t); +#endif diff --git a/tools/build/make.py b/tools/build/make.py index 0cf831a3c966..799ea89b74b3 100755 --- a/tools/build/make.py +++ b/tools/build/make.py @@ -1,267 +1,271 @@ #!/usr/bin/env python3 # PYTHON_ARGCOMPLETE_OKAY # - # SPDX-License-Identifier: BSD-2-Clause-FreeBSD # # Copyright (c) 2018 Alex Richardson # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # $FreeBSD$ # # This script makes it easier to build on non-FreeBSD systems by bootstrapping # bmake and inferring required compiler variables. # # On FreeBSD you can use it the same way as just calling make: # `MAKEOBJDIRPREFIX=~/obj ./tools/build/make.py buildworld -DWITH_FOO` # # On Linux and MacOS you will either need to set XCC/XCXX/XLD/XCPP or pass # --cross-bindir to specify the path to the cross-compiler bindir: # `MAKEOBJDIRPREFIX=~/obj ./tools/build/make.py # --cross-bindir=/path/to/cross/compiler buildworld -DWITH_FOO TARGET=foo # TARGET_ARCH=bar` import argparse import os import shlex import shutil import subprocess import sys from pathlib import Path def run(cmd, **kwargs): cmd = list(map(str, cmd)) # convert all Path objects to str debug("Running", cmd) subprocess.check_call(cmd, **kwargs) def bootstrap_bmake(source_root, objdir_prefix): bmake_source_dir = source_root / "contrib/bmake" bmake_build_dir = objdir_prefix / "bmake-build" bmake_install_dir = objdir_prefix / "bmake-install" bmake_binary = bmake_install_dir / "bin/bmake" if (bmake_install_dir / "bin/bmake").exists(): return bmake_binary print("Bootstrapping bmake...") # TODO: check if the host system bmake is new enough and use that instead if not bmake_build_dir.exists(): os.makedirs(str(bmake_build_dir)) env = os.environ.copy() global new_env_vars env.update(new_env_vars) if sys.platform.startswith("linux"): # Work around the deleted file bmake/missing/sys/cdefs.h # TODO: bmake should keep the compat sys/cdefs.h env["CFLAGS"] = "-I{src}/tools/build/cross-build/include/common " \ "-I{src}/tools/build/cross-build/include/linux " \ "-D_GNU_SOURCE=1".format(src=source_root) configure_args = [ "--with-default-sys-path=" + str(bmake_install_dir / "share/mk"), "--with-machine=amd64", # TODO? "--with-machine-arch=amd64", "--without-filemon", "--prefix=" + str(bmake_install_dir)] run(["sh", bmake_source_dir / "boot-strap"] + configure_args, cwd=str(bmake_build_dir), env=env) run(["sh", bmake_source_dir / "boot-strap", "op=install"] + configure_args, cwd=str(bmake_build_dir)) print("Finished bootstrapping bmake...") return bmake_binary def debug(*args, **kwargs): global parsed_args if parsed_args.debug: print(*args, **kwargs) def is_make_var_set(var): return any( x.startswith(var + "=") or x == ("-D" + var) for x in sys.argv[1:]) def check_required_make_env_var(varname, binary_name, bindir): global new_env_vars if os.getenv(varname): return if not bindir: sys.exit("Could not infer value for $" + varname + ". Either set $" + varname + " or pass --cross-bindir=/cross/compiler/dir/bin") # try to infer the path to the tool guess = os.path.join(bindir, binary_name) if not os.path.isfile(guess): sys.exit("Could not infer value for $" + varname + ": " + guess + " does not exist") new_env_vars[varname] = guess debug("Inferred", varname, "as", guess) global parsed_args if parsed_args.debug: run([guess, "--version"]) def check_xtool_make_env_var(varname, binary_name): # Avoid calling brew --prefix on macOS if all variables are already set: if os.getenv(varname): return global parsed_args if parsed_args.cross_bindir is None: parsed_args.cross_bindir = default_cross_toolchain() return check_required_make_env_var(varname, binary_name, parsed_args.cross_bindir) def default_cross_toolchain(): # default to homebrew-installed clang on MacOS if available if sys.platform.startswith("darwin"): if shutil.which("brew"): llvm_dir = subprocess.run(["brew", "--prefix", "llvm"], capture_output=True).stdout.strip() debug("Inferred LLVM dir as", llvm_dir) try: if llvm_dir and Path(llvm_dir.decode("utf-8"), "bin").exists(): return str(Path(llvm_dir.decode("utf-8"), "bin")) except OSError: return None return None if __name__ == "__main__": parser = argparse.ArgumentParser( formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.add_argument("--host-bindir", help="Directory to look for cc/c++/cpp/ld to build " "host (" + sys.platform + ") binaries", default="/usr/bin") parser.add_argument("--cross-bindir", default=None, help="Directory to look for cc/c++/cpp/ld to build " "target binaries (only needed if XCC/XCPP/XLD " "are not set)") parser.add_argument("--cross-compiler-type", choices=("clang", "gcc"), default="clang", help="Compiler type to find in --cross-bindir (only " "needed if XCC/XCPP/XLD are not set)" "Note: using CC is currently highly experimental") parser.add_argument("--host-compiler-type", choices=("cc", "clang", "gcc"), default="cc", help="Compiler type to find in --host-bindir (only " "needed if CC/CPP/CXX are not set). ") parser.add_argument("--debug", action="store_true", help="Print information on inferred env vars") + parser.add_argument("--bootstrap-toolchain", action="store_true", + help="Bootstrap the toolchain instead of using an " + "external one (experimental and not recommended)") parser.add_argument("--clean", action="store_true", help="Do a clean rebuild instead of building with " "-DWITHOUT_CLEAN") parser.add_argument("--no-clean", action="store_false", dest="clean", help="Do a clean rebuild instead of building with " "-DWITHOUT_CLEAN") try: import argcomplete # bash completion: argcomplete.autocomplete(parser) except ImportError: pass parsed_args, bmake_args = parser.parse_known_args() MAKEOBJDIRPREFIX = os.getenv("MAKEOBJDIRPREFIX") if not MAKEOBJDIRPREFIX: sys.exit("MAKEOBJDIRPREFIX is not set, cannot continue!") if not Path(MAKEOBJDIRPREFIX).is_dir(): sys.exit( "Chosen MAKEOBJDIRPREFIX=" + MAKEOBJDIRPREFIX + " doesn't exit!") objdir_prefix = Path(MAKEOBJDIRPREFIX).absolute() source_root = Path(__file__).absolute().parent.parent.parent new_env_vars = {} if not sys.platform.startswith("freebsd"): if not is_make_var_set("TARGET") or not is_make_var_set("TARGET_ARCH"): if "universe" not in sys.argv and "tinderbox" not in sys.argv: sys.exit("TARGET= and TARGET_ARCH= must be set explicitly " "when building on non-FreeBSD") + if not parsed_args.bootstrap_toolchain: # infer values for CC/CXX/CPP if parsed_args.host_compiler_type == "gcc": default_cc, default_cxx, default_cpp = ("gcc", "g++", "cpp") # FIXME: this should take values like `clang-9` and then look for # clang-cpp-9, etc. Would alleviate the need to set the bindir on # ubuntu/debian at least. elif parsed_args.host_compiler_type == "clang": default_cc, default_cxx, default_cpp = ( "clang", "clang++", "clang-cpp") else: default_cc, default_cxx, default_cpp = ("cc", "c++", "cpp") check_required_make_env_var("CC", default_cc, parsed_args.host_bindir) check_required_make_env_var("CXX", default_cxx, parsed_args.host_bindir) check_required_make_env_var("CPP", default_cpp, parsed_args.host_bindir) # Using the default value for LD is fine (but not for XLD!) # On non-FreeBSD we need to explicitly pass XCC/XLD/X_COMPILER_TYPE use_cross_gcc = parsed_args.cross_compiler_type == "gcc" check_xtool_make_env_var("XCC", "gcc" if use_cross_gcc else "clang") check_xtool_make_env_var("XCXX", "g++" if use_cross_gcc else "clang++") check_xtool_make_env_var("XCPP", "cpp" if use_cross_gcc else "clang-cpp") check_xtool_make_env_var("XLD", "ld" if use_cross_gcc else "ld.lld") # We also need to set STRIPBIN if there is no working strip binary # in $PATH. if not shutil.which("strip"): if sys.platform.startswith("darwin"): # On macOS systems we have to use /usr/bin/strip. sys.exit("Cannot find required tool 'strip'. Please install " "the host compiler and command line tools.") if parsed_args.host_compiler_type == "clang": strip_binary = "llvm-strip" else: strip_binary = "strip" check_required_make_env_var("STRIPBIN", strip_binary, parsed_args.host_bindir) if os.getenv("STRIPBIN") or "STRIPBIN" in new_env_vars: # If we are setting STRIPBIN, we have to set XSTRIPBIN to the # default if it is not set otherwise already. if not os.getenv("XSTRIPBIN") and not is_make_var_set("XSTRIPBIN"): # Use the bootstrapped elftoolchain strip: new_env_vars["XSTRIPBIN"] = "strip" bmake_binary = bootstrap_bmake(source_root, objdir_prefix) # at -j1 cleandir+obj is unbearably slow. AUTO_OBJ helps a lot debug("Adding -DWITH_AUTO_OBJ") bmake_args.append("-DWITH_AUTO_OBJ") if parsed_args.clean is False: bmake_args.append("-DWITHOUT_CLEAN") if (parsed_args.clean is None and not is_make_var_set("NO_CLEAN") and not is_make_var_set("WITHOUT_CLEAN")): # Avoid accidentally deleting all of the build tree and wasting lots of # time cleaning directories instead of just doing a rm -rf ${.OBJDIR} want_clean = input("You did not set -DWITHOUT_CLEAN/--clean/--no-clean." " Did you really mean to do a clean build? y/[N] ") if not want_clean.lower().startswith("y"): bmake_args.append("-DWITHOUT_CLEAN") env_cmd_str = " ".join( shlex.quote(k + "=" + v) for k, v in new_env_vars.items()) make_cmd_str = " ".join( shlex.quote(s) for s in [str(bmake_binary)] + bmake_args) debug("Running `env ", env_cmd_str, " ", make_cmd_str, "`", sep="") os.environ.update(new_env_vars) os.chdir(str(source_root)) os.execv(str(bmake_binary), [str(bmake_binary)] + bmake_args) diff --git a/usr.bin/clang/clang.prog.mk b/usr.bin/clang/clang.prog.mk index de5cceac7c6b..d0ed6b8587c5 100644 --- a/usr.bin/clang/clang.prog.mk +++ b/usr.bin/clang/clang.prog.mk @@ -1,24 +1,26 @@ # $FreeBSD$ .include "${SRCTOP}/lib/clang/clang.pre.mk" CFLAGS+= -I${OBJTOP}/lib/clang/libclang CFLAGS+= -I${OBJTOP}/lib/clang/libllvm .include "${SRCTOP}/lib/clang/clang.build.mk" LIBDEPS+= clang LIBDEPS+= llvm .for lib in ${LIBDEPS} DPADD+= ${OBJTOP}/lib/clang/lib${lib}/lib${lib}.a LDADD+= ${OBJTOP}/lib/clang/lib${lib}/lib${lib}.a .endfor PACKAGE= clang +.if ${.MAKE.OS} == "FreeBSD" || !defined(BOOTSTRAPPING) LIBADD+= execinfo LIBADD+= ncursesw +.endif LIBADD+= pthread .include diff --git a/usr.bin/clang/lld/Makefile b/usr.bin/clang/lld/Makefile index 3593a4006ba2..8e95ccc07f04 100644 --- a/usr.bin/clang/lld/Makefile +++ b/usr.bin/clang/lld/Makefile @@ -1,110 +1,112 @@ # $FreeBSD$ .include LLVM_BASE= ${SRCTOP}/contrib/llvm-project LLVM_SRCS= ${LLVM_BASE}/llvm LLD_SRCS= ${LLVM_BASE}/lld PACKAGE= lld PROG_CXX= ld.lld # Man page directory .PATH: ${LLD_SRCS}/docs .if (!defined(TOOLS_PREFIX) && ${MK_LLD_IS_LD} != "no") || \ (defined(TOOLS_PREFIX) && ${MK_LLD_BOOTSTRAP} != "no") SYMLINKS= ${PROG_CXX} ${BINDIR}/ld MLINKS= ld.lld.1 ld.1 .endif .if ${MK_SHARED_TOOLCHAIN} == "no" NO_SHARED?= yes .endif CFLAGS+= -I${LLD_SRCS}/ELF CFLAGS+= -I${LLD_SRCS}/include CFLAGS+= -I${.OBJDIR} CFLAGS+= -I${OBJTOP}/lib/clang/libllvm SRCDIR= lld SRCS+= Common/Args.cpp SRCS+= Common/DWARF.cpp SRCS+= Common/ErrorHandler.cpp SRCS+= Common/Filesystem.cpp SRCS+= Common/Memory.cpp SRCS+= Common/Reproduce.cpp SRCS+= Common/Strings.cpp SRCS+= Common/TargetOptionsCommandFlags.cpp SRCS+= Common/Version.cpp SRCS+= ELF/AArch64ErrataFix.cpp SRCS+= ELF/ARMErrataFix.cpp SRCS+= ELF/Arch/AArch64.cpp SRCS+= ELF/Arch/AMDGPU.cpp SRCS+= ELF/Arch/ARM.cpp SRCS+= ELF/Arch/AVR.cpp SRCS+= ELF/Arch/Hexagon.cpp SRCS+= ELF/Arch/MSP430.cpp SRCS+= ELF/Arch/Mips.cpp SRCS+= ELF/Arch/MipsArchTree.cpp SRCS+= ELF/Arch/PPC.cpp SRCS+= ELF/Arch/PPC64.cpp SRCS+= ELF/Arch/RISCV.cpp SRCS+= ELF/Arch/SPARCV9.cpp SRCS+= ELF/Arch/X86.cpp SRCS+= ELF/Arch/X86_64.cpp SRCS+= ELF/CallGraphSort.cpp SRCS+= ELF/DWARF.cpp SRCS+= ELF/Driver.cpp SRCS+= ELF/DriverUtils.cpp SRCS+= ELF/EhFrame.cpp SRCS+= ELF/ICF.cpp SRCS+= ELF/InputFiles.cpp SRCS+= ELF/InputSection.cpp SRCS+= ELF/LTO.cpp SRCS+= ELF/LinkerScript.cpp SRCS+= ELF/MapFile.cpp SRCS+= ELF/MarkLive.cpp SRCS+= ELF/OutputSections.cpp SRCS+= ELF/Relocations.cpp SRCS+= ELF/ScriptLexer.cpp SRCS+= ELF/ScriptParser.cpp SRCS+= ELF/SymbolTable.cpp SRCS+= ELF/Symbols.cpp SRCS+= ELF/SyntheticSections.cpp SRCS+= ELF/Target.cpp SRCS+= ELF/Thunks.cpp SRCS+= ELF/Writer.cpp SRCS+= lib/Core/Error.cpp SRCS+= lib/Core/File.cpp SRCS+= lib/Core/LinkingContext.cpp SRCS+= lib/Core/Reader.cpp SRCS+= lib/Core/Resolver.cpp SRCS+= lib/Core/SymbolTable.cpp SRCS+= tools/lld/lld.cpp .include "${SRCTOP}/lib/clang/llvm.build.mk" LIBDEPS+= llvm .for lib in ${LIBDEPS} DPADD+= ${OBJTOP}/lib/clang/lib${lib}/lib${lib}.a LDADD+= ${OBJTOP}/lib/clang/lib${lib}/lib${lib}.a .endfor LLVM_TBLGEN?= llvm-tblgen INCFILE= Options.inc TDFILE= ${LLD_SRCS}/ELF/Options.td GENOPT= -gen-opt-parser-defs ${INCFILE}: ${TDFILE} ${LLVM_TBLGEN} ${GENOPT} -I ${LLVM_SRCS}/include -d ${.TARGET:C/$/.d/} \ -o ${.TARGET} ${TDFILE} TGHDRS+= ${INCFILE} DPSRCS+= ${TGHDRS} CLEANFILES+= ${TGHDRS} ${TGHDRS:C/$/.d/} +.if ${.MAKE.OS} == "FreeBSD" || !defined(BOOTSTRAPPING) LIBADD+= execinfo LIBADD+= ncursesw +.endif LIBADD+= pthread LIBADD+= z .include diff --git a/usr.bin/clang/llvm.prog.mk b/usr.bin/clang/llvm.prog.mk index 58fd3eedd113..56698c4138d3 100644 --- a/usr.bin/clang/llvm.prog.mk +++ b/usr.bin/clang/llvm.prog.mk @@ -1,29 +1,31 @@ # $FreeBSD$ .include "${SRCTOP}/lib/clang/llvm.pre.mk" CFLAGS+= -I${OBJTOP}/lib/clang/libllvm .include "${SRCTOP}/lib/clang/llvm.build.mk" # Special case for the bootstrap-tools phase. .if (defined(TOOLS_PREFIX) || ${MACHINE} == "host") && \ (${PROG_CXX} == "clang-tblgen" || ${PROG_CXX} == "lldb-tblgen" || \ ${PROG_CXX} == "llvm-tblgen") LIBDEPS+= llvmminimal .else LIBDEPS+= llvm .endif .for lib in ${LIBDEPS} DPADD+= ${OBJTOP}/lib/clang/lib${lib}/lib${lib}.a LDADD+= ${OBJTOP}/lib/clang/lib${lib}/lib${lib}.a .endfor PACKAGE= clang +.if ${.MAKE.OS} == "FreeBSD" || !defined(BOOTSTRAPPING) LIBADD+= execinfo LIBADD+= ncursesw +.endif LIBADD+= pthread .include