Skip to content

Commit 99009e0

Browse files
committed
[metadata prespecialization] Reenable for stdlib.
Whenever building the stdlib for a supported platform, enable metadata prespecialization for it.
1 parent 31f715d commit 99009e0

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

lib/IRGen/IRGenModule.cpp

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1398,13 +1398,18 @@ void IRGenModule::error(SourceLoc loc, const Twine &message) {
13981398
bool IRGenModule::useDllStorage() { return ::useDllStorage(Triple); }
13991399

14001400
bool IRGenModule::shouldPrespecializeGenericMetadata() {
1401+
auto canPrespecializeTarget =
1402+
(Triple.isOSDarwin() || Triple.isTvOS() || Triple.isOSLinux());
1403+
if (canPrespecializeTarget && isStandardLibrary()) {
1404+
return true;
1405+
}
14011406
auto &context = getSwiftModule()->getASTContext();
14021407
auto deploymentAvailability =
14031408
AvailabilityContext::forDeploymentTarget(context);
1404-
return IRGen.Opts.PrespecializeGenericMetadata &&
1405-
deploymentAvailability.isContainedIn(
1406-
context.getPrespecializedGenericMetadataAvailability()) &&
1407-
(Triple.isOSDarwin() || Triple.isTvOS() || Triple.isOSLinux());
1409+
return IRGen.Opts.PrespecializeGenericMetadata &&
1410+
deploymentAvailability.isContainedIn(
1411+
context.getPrespecializedGenericMetadataAvailability()) &&
1412+
canPrespecializeTarget;
14081413
}
14091414

14101415
void IRGenerator::addGenModule(SourceFile *SF, IRGenModule *IGM) {

0 commit comments

Comments
 (0)