@@ -454,23 +454,22 @@ static void countStatsPostIRGen(UnifiedStatsReporter &Stats,
454
454
455
455
template <typename ...ArgTypes>
456
456
void
457
- diagnoseSync (DiagnosticEngine * Diags, llvm::sys::Mutex *DiagMutex,
457
+ diagnoseSync (DiagnosticEngine & Diags, llvm::sys::Mutex *DiagMutex,
458
458
SourceLoc Loc, Diag<ArgTypes...> ID,
459
459
typename swift::detail::PassArgument<ArgTypes>::type... Args) {
460
- if (!Diags)
461
- return ;
462
460
if (DiagMutex)
463
461
DiagMutex->lock ();
464
462
465
- Diags-> diagnose (Loc, ID, std::move (Args)...);
463
+ Diags. diagnose (Loc, ID, std::move (Args)...);
466
464
467
465
if (DiagMutex)
468
466
DiagMutex->unlock ();
469
467
}
470
468
471
469
// / Run the LLVM passes. In multi-threaded compilation this will be done for
472
470
// / multiple LLVM modules in parallel.
473
- bool swift::performLLVM (const IRGenOptions &Opts, DiagnosticEngine *Diags,
471
+ bool swift::performLLVM (const IRGenOptions &Opts,
472
+ DiagnosticEngine &Diags,
474
473
llvm::sys::Mutex *DiagMutex,
475
474
llvm::GlobalVariable *HashGlobal,
476
475
llvm::Module *Module,
@@ -975,7 +974,7 @@ performIRGeneration(const IRGenOptions &Opts, ModuleDecl *M,
975
974
FrontendStatsTracer tracer (Ctx.Stats , " LLVM pipeline" );
976
975
977
976
// Since no out module hash was set, we need to performLLVM.
978
- if (performLLVM (Opts, & IGM.Context .Diags , nullptr , IGM.ModuleHash ,
977
+ if (performLLVM (Opts, IGM.Context .Diags , nullptr , IGM.ModuleHash ,
979
978
IGM.getModule (), IGM.TargetMachine .get (),
980
979
IGM.Context .LangOpts .EffectiveLanguageVersion ,
981
980
IGM.OutputFilename , IGM.Context .Stats ))
@@ -1010,7 +1009,7 @@ struct LLVMCodeGenThreads {
1010
1009
<< IGM->OutputFilename << " \n " ;
1011
1010
diagMutex->unlock (););
1012
1011
embedBitcode (IGM->getModule (), parent.irgen ->Opts );
1013
- performLLVM (parent.irgen ->Opts , & IGM->Context .Diags , diagMutex,
1012
+ performLLVM (parent.irgen ->Opts , IGM->Context .Diags , diagMutex,
1014
1013
IGM->ModuleHash , IGM->getModule (), IGM->TargetMachine .get (),
1015
1014
IGM->Context .LangOpts .EffectiveLanguageVersion ,
1016
1015
IGM->OutputFilename , IGM->Context .Stats );
@@ -1363,15 +1362,14 @@ swift::createSwiftModuleObjectFile(SILModule &SILMod, StringRef Buffer,
1363
1362
}
1364
1363
ASTSym->setSection (Section);
1365
1364
ASTSym->setAlignment (llvm::MaybeAlign (serialization::SWIFTMODULE_ALIGNMENT));
1366
- ::performLLVM (Opts, & Ctx.Diags, nullptr , nullptr , IGM.getModule(),
1365
+ ::performLLVM (Opts, Ctx.Diags, nullptr , nullptr , IGM.getModule(),
1367
1366
IGM.TargetMachine.get(),
1368
1367
Ctx.LangOpts.EffectiveLanguageVersion,
1369
- OutputPath);
1368
+ OutputPath, Ctx.Stats );
1370
1369
}
1371
1370
1372
1371
bool swift::performLLVM (const IRGenOptions &Opts, ASTContext &Ctx,
1373
- llvm::Module *Module, StringRef OutputFilename,
1374
- UnifiedStatsReporter *Stats) {
1372
+ llvm::Module *Module, StringRef OutputFilename) {
1375
1373
// Build TargetMachine.
1376
1374
auto TargetMachine = createTargetMachine (Opts, Ctx);
1377
1375
if (!TargetMachine)
@@ -1382,10 +1380,10 @@ bool swift::performLLVM(const IRGenOptions &Opts, ASTContext &Ctx,
1382
1380
Module->setDataLayout (Clang->getTargetInfo ().getDataLayout ());
1383
1381
1384
1382
embedBitcode (Module, Opts);
1385
- if (::performLLVM (Opts, & Ctx.Diags , nullptr , nullptr , Module,
1383
+ if (::performLLVM (Opts, Ctx.Diags , nullptr , nullptr , Module,
1386
1384
TargetMachine.get (),
1387
1385
Ctx.LangOpts .EffectiveLanguageVersion ,
1388
- OutputFilename, Stats))
1386
+ OutputFilename, Ctx. Stats ))
1389
1387
return true ;
1390
1388
return false ;
1391
1389
}
0 commit comments