Skip to content

Commit b256bab

Browse files
committed
fix BridgedPassContext::addFunctionToPassManagerWorklist
A new function must not be added to the pass-manager's worklist if done from a module pass.
1 parent fc8f264 commit b256bab

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

include/swift/SILOptimizer/OptimizerBridgingImpl.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include "swift/SILOptimizer/Analysis/DominanceAnalysis.h"
2727
#include "swift/SILOptimizer/OptimizerBridging.h"
2828
#include "swift/SILOptimizer/PassManager/PassManager.h"
29+
#include "swift/SILOptimizer/PassManager/Transforms.h"
2930
#include "swift/SILOptimizer/Utils/InstOptUtils.h"
3031
#include "swift/SILOptimizer/Utils/DebugOptUtils.h"
3132

@@ -535,8 +536,9 @@ void BridgedPassContext::SSAUpdater_initialize(
535536
void BridgedPassContext::addFunctionToPassManagerWorklist(
536537
BridgedFunction newFunction, BridgedFunction oldFunction) const {
537538
swift::SILPassManager *pm = invocation->getPassManager();
538-
pm->addFunctionToWorklist(newFunction.getFunction(),
539-
oldFunction.getFunction());
539+
if (llvm::isa<swift::SILFunctionTransform>(invocation->getTransform())) {
540+
pm->addFunctionToWorklist(newFunction.getFunction(), oldFunction.getFunction());
541+
}
540542
}
541543

542544
void BridgedPassContext::SSAUpdater_addAvailableValue(BridgedBasicBlock block, BridgedValue value) const {

0 commit comments

Comments
 (0)