Skip to content

Commit 4682caa

Browse files
committed
IRGen: Move coroutine passes to be scheduled before tsan
The coroutine transformation passes can't seem to handle tsan'ified code. My attempt at reducing a test case failed. rdar://48719789
1 parent fbd7949 commit 4682caa

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

lib/IRGen/IRGen.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,9 @@ void swift::performLLVMOptimizations(IRGenOptions &Opts, llvm::Module *Module,
200200
addSwiftContractPass);
201201
}
202202

203+
if (RunSwiftSpecificLLVMOptzns)
204+
addCoroutinePassesToExtensionPoints(PMBuilder);
205+
203206
if (Opts.Sanitizers & SanitizerKind::Address) {
204207
PMBuilder.addExtension(PassManagerBuilder::EP_OptimizerLast,
205208
addAddressSanitizerPasses);
@@ -222,10 +225,6 @@ void swift::performLLVMOptimizations(IRGenOptions &Opts, llvm::Module *Module,
222225
PMBuilder.addExtension(PassManagerBuilder::EP_EnabledOnOptLevel0,
223226
addSanitizerCoveragePass);
224227
}
225-
226-
if (RunSwiftSpecificLLVMOptzns)
227-
addCoroutinePassesToExtensionPoints(PMBuilder);
228-
229228
if (RunSwiftSpecificLLVMOptzns)
230229
PMBuilder.addExtension(PassManagerBuilder::EP_OptimizerLast,
231230
addSwiftMergeFunctionsPass);

0 commit comments

Comments
 (0)