22void rtg::populateRandomizerPipeline(mlir::PassManager &pm,
28 pm.addInstrumentation(
34 auto &anyPm = pm.nestAny();
35 anyPm.addPass(mlir::createCSEPass());
43 ElaborationPassOptions passOptions;
44 passOptions.seed = options.
getSeed();
45 pm.addPass(rtg::createElaborationPass(passOptions));
47 pm.addPass(rtg::createInlineSequencesPass());
49 MemoryAllocationPassOptions passOptions;
51 pm.addNestedPass<rtg::TestOp>(rtg::createMemoryAllocationPass());
53 pm.addPass(rtg::createLowerUniqueLabelsPass());
54 pm.addNestedPass<rtg::TestOp>(rtg::createLinearScanRegisterAllocationPass());
56 auto &anyPm = pm.nestAny();
57 anyPm.addPass(mlir::createCSEPass());
61 if (options.
getOutputFormat() == RtgToolOptions::OutputFormat::ElaboratedMLIR)
65 EmitRTGISAAssemblyPassOptions passOptions;
67 passOptions.unsupportedInstructions = unsupported;
68 passOptions.unsupportedInstructionsFile =
72 pm.addPass(rtg::createEmitRTGISAAssemblyPass(passOptions));