Skip to content

Commit 7ae3d38

Browse files
Merge pull request #31262 from nate-chandler/generic-metadata-prespecialization-components/on-for-stdlib
[metadata prespecialization] Reenable for stdlib.
2 parents 714cb05 + 99009e0 commit 7ae3d38

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
@@ -1408,13 +1408,18 @@ void IRGenModule::error(SourceLoc loc, const Twine &message) {
14081408
bool IRGenModule::useDllStorage() { return ::useDllStorage(Triple); }
14091409

14101410
bool IRGenModule::shouldPrespecializeGenericMetadata() {
1411+
auto canPrespecializeTarget =
1412+
(Triple.isOSDarwin() || Triple.isTvOS() || Triple.isOSLinux());
1413+
if (canPrespecializeTarget && isStandardLibrary()) {
1414+
return true;
1415+
}
14111416
auto &context = getSwiftModule()->getASTContext();
14121417
auto deploymentAvailability =
14131418
AvailabilityContext::forDeploymentTarget(context);
1414-
return IRGen.Opts.PrespecializeGenericMetadata &&
1415-
deploymentAvailability.isContainedIn(
1416-
context.getPrespecializedGenericMetadataAvailability()) &&
1417-
(Triple.isOSDarwin() || Triple.isTvOS() || Triple.isOSLinux());
1419+
return IRGen.Opts.PrespecializeGenericMetadata &&
1420+
deploymentAvailability.isContainedIn(
1421+
context.getPrespecializedGenericMetadataAvailability()) &&
1422+
canPrespecializeTarget;
14181423
}
14191424

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

0 commit comments

Comments
 (0)