@@ -2552,45 +2552,6 @@ usePrespecialized(SILOptFunctionBuilder &funcBuilder, ApplySite apply,
2552
2552
return nullptr ;
2553
2553
}
2554
2554
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
-
2594
2555
void swift::trySpecializeApplyOfGeneric (
2595
2556
SILOptFunctionBuilder &FuncBuilder,
2596
2557
ApplySite Apply, DeadInstructionSet &DeadApplies,
@@ -2646,12 +2607,6 @@ void swift::trySpecializeApplyOfGeneric(
2646
2607
SILFunction *prespecializedF = nullptr ;
2647
2608
ReabstractionInfo prespecializedReInfo;
2648
2609
2649
- FuncBuilder.getModule ().performOnceForPrespecializedImportedExtensions (
2650
- [&FuncBuilder](AbstractFunctionDecl *pre ) {
2651
- transferSpecializeAttributeTargets (FuncBuilder.getModule (), FuncBuilder,
2652
- pre );
2653
- });
2654
-
2655
2610
if ((prespecializedF = usePrespecialized (FuncBuilder, Apply, RefF, ReInfo,
2656
2611
prespecializedReInfo))) {
2657
2612
ReInfo = prespecializedReInfo;
0 commit comments