Merge remote-tracking branch 'origin/main' into rebranch

This commit is contained in:
swift-ci
2025-08-11 09:35:30 -07:00
4 changed files with 23 additions and 24 deletions

View File

@@ -22,6 +22,7 @@
#include "swift/Basic/Feature.h" #include "swift/Basic/Feature.h"
#include "swift/Basic/FunctionBodySkipping.h" #include "swift/Basic/FunctionBodySkipping.h"
#include "swift/Basic/LLVM.h" #include "swift/Basic/LLVM.h"
#include "swift/Basic/Platform.h"
#include "swift/Basic/PlaygroundOption.h" #include "swift/Basic/PlaygroundOption.h"
#include "swift/Basic/Version.h" #include "swift/Basic/Version.h"
#include "swift/Config.h" #include "swift/Config.h"
@@ -693,18 +694,7 @@ namespace swift {
/// This is only implemented on certain OSs. If no target has been /// This is only implemented on certain OSs. If no target has been
/// configured, returns v0.0.0. /// configured, returns v0.0.0.
llvm::VersionTuple getMinPlatformVersion() const { llvm::VersionTuple getMinPlatformVersion() const {
if (Target.isMacOSX()) { return getVersionForTriple(Target);
llvm::VersionTuple OSVersion;
Target.getMacOSXVersion(OSVersion);
return OSVersion;
} else if (Target.isiOS()) {
return Target.getiOSVersion();
} else if (Target.isWatchOS()) {
return Target.getOSVersion();
} else if (Target.isXROS()) {
return Target.getOSVersion();
}
return llvm::VersionTuple(/*Major=*/0, /*Minor=*/0, /*Subminor=*/0);
} }
/// Sets an implicit platform condition. /// Sets an implicit platform condition.

View File

@@ -85,6 +85,9 @@ namespace swift {
/// returned. /// returned.
StringRef getPlatformNameForTriple(const llvm::Triple &triple); StringRef getPlatformNameForTriple(const llvm::Triple &triple);
/// Returns the version tuple for a given target triple
llvm::VersionTuple getVersionForTriple(const llvm::Triple &triple);
/// Returns the platform Kind for Darwin triples. /// Returns the platform Kind for Darwin triples.
DarwinPlatformKind getDarwinPlatformKind(const llvm::Triple &triple); DarwinPlatformKind getDarwinPlatformKind(const llvm::Triple &triple);

View File

@@ -279,6 +279,23 @@ StringRef swift::getPlatformNameForTriple(const llvm::Triple &triple) {
llvm_unreachable("unsupported OS"); llvm_unreachable("unsupported OS");
} }
llvm::VersionTuple swift::getVersionForTriple(const llvm::Triple &triple) {
if (triple.isMacOSX()) {
llvm::VersionTuple OSVersion;
triple.getMacOSXVersion(OSVersion);
return OSVersion;
} else if (triple.isiOS()) {
return triple.getiOSVersion();
} else if (triple.isWatchOS()) {
return triple.getOSVersion();
} else if (triple.isXROS()) {
return triple.getOSVersion();
} else if (triple.isOSWindows()) {
return triple.getOSVersion();
}
return llvm::VersionTuple(/*Major=*/0, /*Minor=*/0, /*Subminor=*/0);
}
StringRef swift::getMajorArchitectureName(const llvm::Triple &Triple) { StringRef swift::getMajorArchitectureName(const llvm::Triple &Triple) {
if (Triple.isOSLinux()) { if (Triple.isOSLinux()) {
switch (Triple.getSubArch()) { switch (Triple.getSubArch()) {

View File

@@ -56,17 +56,6 @@ swift::CompilerInvocation::CompilerInvocation() {
setTargetTriple(llvm::sys::getDefaultTargetTriple()); setTargetTriple(llvm::sys::getDefaultTargetTriple());
} }
/// Converts a llvm::Triple to a llvm::VersionTuple.
static llvm::VersionTuple
getVersionTuple(const llvm::Triple &triple) {
if (triple.isMacOSX()) {
llvm::VersionTuple OSVersion;
triple.getMacOSXVersion(OSVersion);
return OSVersion;
}
return triple.getOSVersion();
}
void CompilerInvocation::computeRuntimeResourcePathFromExecutablePath( void CompilerInvocation::computeRuntimeResourcePathFromExecutablePath(
StringRef mainExecutablePath, bool shared, StringRef mainExecutablePath, bool shared,
llvm::SmallVectorImpl<char> &runtimeResourcePath) { llvm::SmallVectorImpl<char> &runtimeResourcePath) {
@@ -1623,7 +1612,7 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
// First, set up default minimum inlining target versions. // First, set up default minimum inlining target versions.
auto getDefaultMinimumInliningTargetVersion = auto getDefaultMinimumInliningTargetVersion =
[&](const llvm::Triple &triple) -> llvm::VersionTuple { [&](const llvm::Triple &triple) -> llvm::VersionTuple {
const auto targetVersion = getVersionTuple(triple); const auto targetVersion = getVersionForTriple(triple);
// In API modules, default to the version when Swift first became available. // In API modules, default to the version when Swift first became available.
if (Opts.LibraryLevel == LibraryLevel::API) { if (Opts.LibraryLevel == LibraryLevel::API) {