Skip to content

Commit f34bef8

Browse files
committed
[embedded] Relax getOrCreateFunction assert instead of changing serialization rules
1 parent 41ef194 commit f34bef8

File tree

2 files changed

+5
-10
lines changed

2 files changed

+5
-10
lines changed

lib/SIL/IR/SILFunctionBuilder.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ SILFunction *SILFunctionBuilder::getOrCreateFunction(
3232
if (auto fn = mod.lookUpFunction(name)) {
3333
assert(fn->getLoweredFunctionType() == type);
3434
assert(stripExternalFromLinkage(fn->getLinkage()) ==
35-
stripExternalFromLinkage(linkage));
35+
stripExternalFromLinkage(linkage) || mod.getOptions().EmbeddedSwift);
3636
return fn;
3737
}
3838

lib/SILOptimizer/IPO/CrossModuleOptimization.cpp

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,7 @@ void CrossModuleOptimization::serializeFunction(SILFunction *function,
491491
if (function->isSerialized())
492492
return;
493493

494-
if (!everything && !canSerializeFlags.lookup(function))
494+
if (!canSerializeFlags.lookup(function))
495495
return;
496496

497497
function->setSerialized(IsSerialized);
@@ -588,14 +588,9 @@ void CrossModuleOptimization::keepMethodAlive(SILDeclRef method) {
588588

589589
void CrossModuleOptimization::makeFunctionUsableFromInline(SILFunction *function) {
590590
assert(canUseFromInline(function));
591-
if (!isAvailableExternally(function->getLinkage())) {
592-
bool shouldPromoteToPublic = function->getLinkage() != SILLinkage::Public;
593-
if (everything)
594-
shouldPromoteToPublic = function->getLinkage() != SILLinkage::Public &&
595-
function->getLinkage() != SILLinkage::Shared;
596-
if (shouldPromoteToPublic) {
597-
function->setLinkage(SILLinkage::Public);
598-
}
591+
if (!isAvailableExternally(function->getLinkage()) &&
592+
function->getLinkage() != SILLinkage::Public) {
593+
function->setLinkage(SILLinkage::Public);
599594
}
600595
}
601596

0 commit comments

Comments
 (0)