@@ -2552,45 +2552,6 @@ usePrespecialized(SILOptFunctionBuilder &funcBuilder, ApplySite apply,
25522552 return nullptr ;
25532553}
25542554
2555- static void transferSpecializeAttributeTargets (SILModule &M,
2556- SILOptFunctionBuilder &builder,
2557- Decl *d) {
2558- auto *vd = cast<AbstractFunctionDecl>(d);
2559- for (auto *A : vd->getAttrs ().getAttributes <SpecializeAttr>()) {
2560- auto *SA = cast<SpecializeAttr>(A);
2561- // Filter _spi.
2562- auto spiGroups = SA->getSPIGroups ();
2563- auto hasSPIGroup = !spiGroups.empty ();
2564- if (hasSPIGroup) {
2565- if (vd->getModuleContext () != M.getSwiftModule () &&
2566- !M.getSwiftModule ()->isImportedAsSPI (SA, vd)) {
2567- continue ;
2568- }
2569- }
2570- if (auto *targetFunctionDecl = SA->getTargetFunctionDecl (vd)) {
2571- auto target = SILDeclRef (targetFunctionDecl);
2572- auto targetSILFunction = builder.getOrCreateFunction (
2573- SILLocation (vd), target, NotForDefinition,
2574- [&builder](SILLocation loc, SILDeclRef constant) -> SILFunction * {
2575- return builder.getOrCreateFunction (loc, constant, NotForDefinition);
2576- });
2577- auto kind = SA->getSpecializationKind () ==
2578- SpecializeAttr::SpecializationKind::Full
2579- ? SILSpecializeAttr::SpecializationKind::Full
2580- : SILSpecializeAttr::SpecializationKind::Partial;
2581- Identifier spiGroupIdent;
2582- if (hasSPIGroup) {
2583- spiGroupIdent = spiGroups[0 ];
2584- }
2585- auto availability = AvailabilityInference::annotatedAvailableRangeForAttr (
2586- SA, M.getSwiftModule ()->getASTContext ());
2587- targetSILFunction->addSpecializeAttr (SILSpecializeAttr::create (
2588- M, SA->getSpecializedSignature (), SA->isExported (), kind, nullptr ,
2589- spiGroupIdent, vd->getModuleContext (), availability));
2590- }
2591- }
2592- }
2593-
25942555void swift::trySpecializeApplyOfGeneric (
25952556 SILOptFunctionBuilder &FuncBuilder,
25962557 ApplySite Apply, DeadInstructionSet &DeadApplies,
@@ -2646,12 +2607,6 @@ void swift::trySpecializeApplyOfGeneric(
26462607 SILFunction *prespecializedF = nullptr ;
26472608 ReabstractionInfo prespecializedReInfo;
26482609
2649- FuncBuilder.getModule ().performOnceForPrespecializedImportedExtensions (
2650- [&FuncBuilder](AbstractFunctionDecl *pre ) {
2651- transferSpecializeAttributeTargets (FuncBuilder.getModule (), FuncBuilder,
2652- pre );
2653- });
2654-
26552610 if ((prespecializedF = usePrespecialized (FuncBuilder, Apply, RefF, ReInfo,
26562611 prespecializedReInfo))) {
26572612 ReInfo = prespecializedReInfo;
0 commit comments