Skip to content

Commit f9cc9e6

Browse files
committed
Bailout of PredictableMemOpt utilities when in non-ossa
These utilities are called from MandatorPerformanceOptimizations which can run on serialized non-ossa functions. Add a bailout to handle this case.
1 parent 28d1cf9 commit f9cc9e6

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

lib/SILOptimizer/Mandatory/PredictableMemOpt.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3169,9 +3169,12 @@ static AllocationInst *getOptimizableAllocation(SILInstruction *i) {
31693169
}
31703170

31713171
bool swift::optimizeMemoryAccesses(SILFunction *fn) {
3172+
if (!fn->hasOwnership()) {
3173+
return false;
3174+
}
3175+
31723176
bool changed = false;
31733177
DeadEndBlocks deadEndBlocks(fn);
3174-
31753178
InstructionDeleter deleter;
31763179
for (auto &bb : *fn) {
31773180
for (SILInstruction &inst : bb.deletableInstructions()) {
@@ -3209,6 +3212,9 @@ bool swift::optimizeMemoryAccesses(SILFunction *fn) {
32093212
}
32103213

32113214
bool swift::eliminateDeadAllocations(SILFunction *fn, DominanceInfo *domInfo) {
3215+
if (!fn->hasOwnership()) {
3216+
return false;
3217+
}
32123218
bool changed = false;
32133219
DeadEndBlocks deadEndBlocks(fn);
32143220

0 commit comments

Comments
 (0)