@@ -551,7 +551,6 @@ void jl_dump_native_impl(void *native_code,
551
551
std::vector<NewArchiveMember> unopt_bc_Archive;
552
552
std::vector<std::string> outputs;
553
553
554
- ModuleAnalysisManager none;
555
554
ModulePassManager preopt, postopt;
556
555
legacy::PassManager emitter;
557
556
@@ -603,13 +602,18 @@ void jl_dump_native_impl(void *native_code,
603
602
604
603
// do the actual work
605
604
auto add_output = [&] (Module &M, StringRef unopt_bc_Name, StringRef bc_Name, StringRef obj_Name, StringRef asm_Name) {
606
- preopt.run (M, none);
605
+ AnalysisManagers AM;
606
+ PassBuilder PB;
607
+ AM.crossRegister (PB);
608
+ preopt.run (M, AM.MAM );
607
609
if (unopt_bc_fname)
608
610
emit_result (unopt_bc_Archive, unopt_bc_Buffer, unopt_bc_Name, outputs);
609
611
if (!bc_fname && !obj_fname && !asm_fname)
610
612
return ;
611
613
optimizer.run (M);
612
- postopt.run (M, none);
614
+ AM = AnalysisManagers ();
615
+ AM.crossRegister (PB);
616
+ postopt.run (M, AM.MAM );
613
617
emitter.run (M);
614
618
if (bc_fname)
615
619
emit_result (bc_Archive, bc_Buffer, bc_Name, outputs);
@@ -1403,17 +1407,22 @@ NewPM::NewPM(std::unique_ptr<TargetMachine> TM, int opt_level, OptimizationOptio
1403
1407
PB(this ->TM.get(), PipelineTuningOptions(), None, PIC.get()),
1404
1408
MPM(createMPM(opt_level, options)), opt_level(opt_level) {}
1405
1409
1406
- PreservedAnalyses NewPM::run (Module &M) {
1407
- LoopAnalysisManager LAM;
1408
- FunctionAnalysisManager FAM (createFAM (opt_level, TM->getTargetIRAnalysis (), TM->getTargetTriple ()));
1409
- CGSCCAnalysisManager CGAM;
1410
- ModuleAnalysisManager MAM;
1410
+ AnalysisManagers::AnalysisManagers (PassBuilder &PB, TargetMachine &TM, int opt_level) :
1411
+ LAM(), FAM(createFAM(opt_level, TM.getTargetIRAnalysis(), TM.getTargetTriple())), CGAM(), MAM() {
1412
+ crossRegister (PB);
1413
+ }
1414
+
1415
+ void AnalysisManagers::crossRegister (PassBuilder &PB) {
1411
1416
PB.registerLoopAnalyses (LAM);
1412
1417
PB.registerFunctionAnalyses (FAM);
1413
1418
PB.registerCGSCCAnalyses (CGAM);
1414
1419
PB.registerModuleAnalyses (MAM);
1415
1420
PB.crossRegisterProxies (LAM, FAM, CGAM, MAM);
1416
- return MPM.run (M, MAM);
1421
+ }
1422
+
1423
+ PreservedAnalyses NewPM::run (Module &M) {
1424
+ AnalysisManagers analyses (PB, *TM, opt_level);
1425
+ return MPM.run (M, analyses.MAM );
1417
1426
}
1418
1427
1419
1428
// TODO(vchuravy/maleadt):
0 commit comments