mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Frontend: Enable -target-min-inlining-version min for API modules by default.
Resolves rdar://67975153.
This commit is contained in:
@@ -47,6 +47,17 @@ swift::CompilerInvocation::CompilerInvocation() {
|
||||
setTargetTriple(llvm::sys::getDefaultTargetTriple());
|
||||
}
|
||||
|
||||
/// Converts a llvm::Triple to a llvm::VersionTuple.
|
||||
static llvm::VersionTuple
|
||||
getVersionTuple(const llvm::Triple &triple) {
|
||||
unsigned major, minor, patch;
|
||||
if (triple.isMacOSX())
|
||||
triple.getMacOSXVersion(major, minor, patch);
|
||||
else
|
||||
triple.getOSVersion(major, minor, patch);
|
||||
return llvm::VersionTuple(major, minor, patch);
|
||||
}
|
||||
|
||||
void CompilerInvocation::computeRuntimeResourcePathFromExecutablePath(
|
||||
StringRef mainExecutablePath, bool shared,
|
||||
llvm::SmallVectorImpl<char> &runtimeResourcePath) {
|
||||
@@ -865,24 +876,19 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
|
||||
// First, set up default minimum inlining target versions.
|
||||
auto getDefaultMinimumInliningTargetVersion =
|
||||
[&](const llvm::Triple &triple) -> llvm::VersionTuple {
|
||||
// FIXME: Re-enable with rdar://91387029
|
||||
#if SWIFT_DEFAULT_API_TARGET_MIN_INLINING_VERSION_TO_MIN
|
||||
const auto targetVersion = getVersionTuple(triple);
|
||||
|
||||
// In API modules, default to the version when Swift first became available.
|
||||
if (Opts.LibraryLevel == LibraryLevel::API)
|
||||
if (auto minTriple = minimumAvailableOSVersionForTriple(triple))
|
||||
return *minTriple;
|
||||
#endif
|
||||
if (Opts.LibraryLevel == LibraryLevel::API) {
|
||||
if (auto minVersion = minimumAvailableOSVersionForTriple(triple))
|
||||
return *minVersion;
|
||||
}
|
||||
|
||||
// In other modules, assume that availability is used less consistently
|
||||
// and that library clients will generally raise deployment targets as the
|
||||
// library evolves so the min inlining version should be the deployment
|
||||
// target by default.
|
||||
unsigned major, minor, patch;
|
||||
if (triple.isMacOSX())
|
||||
triple.getMacOSXVersion(major, minor, patch);
|
||||
else
|
||||
triple.getOSVersion(major, minor, patch);
|
||||
return llvm::VersionTuple(major, minor, patch);
|
||||
return targetVersion;
|
||||
};
|
||||
|
||||
Opts.MinimumInliningTargetVersion =
|
||||
|
||||
Reference in New Issue
Block a user