File tree Expand file tree Collapse file tree 2 files changed +8
-1
lines changed Expand file tree Collapse file tree 2 files changed +8
-1
lines changed Original file line number Diff line number Diff line change @@ -1035,7 +1035,8 @@ bool SILClosureSpecializerTransform::gatherCallSites(
1035
1035
// so continue...
1036
1036
auto AI = FullApplySite::isa (Use->getUser ());
1037
1037
if (!AI || AI.hasSubstitutions () ||
1038
- !canSpecializeFullApplySite (AI.getKind ()))
1038
+ !canSpecializeFullApplySite (AI.getKind ()) ||
1039
+ !AI.canOptimize ())
1039
1040
continue ;
1040
1041
1041
1042
// Check if we have already associated this apply inst with a closure to
Original file line number Diff line number Diff line change @@ -202,6 +202,12 @@ FunctionSignatureSpecializationMangler::mangleConstantProp(LiteralInst *LI) {
202
202
switch (LI->getKind ()) {
203
203
default :
204
204
llvm_unreachable (" unknown literal" );
205
+ case SILInstructionKind::DynamicFunctionRefInst: {
206
+ SILFunction *F = cast<DynamicFunctionRefInst>(LI)->getReferencedFunction ();
207
+ ArgOpBuffer << ' f' ;
208
+ appendIdentifier (F->getName ());
209
+ break ;
210
+ }
205
211
case SILInstructionKind::FunctionRefInst: {
206
212
SILFunction *F = cast<FunctionRefInst>(LI)->getReferencedFunction ();
207
213
ArgOpBuffer << ' f' ;
You can’t perform that action at this time.
0 commit comments