14#include "mlir/Pass/PassManager.h"
15#include "mlir/Transforms/Passes.h"
24 OpPassManager &pm,
const RandomizationPipelineOptions &options) {
26 ElaborationPassOptions passOptions;
27 passOptions.seed = options.seed;
28 pm.addPass(rtg::createElaborationPass(passOptions));
30 pm.addPass(rtg::createInlineSequencesPass());
31 pm.addPass(createSymbolDCEPass());
33 auto &testPm = pm.nest<rtg::TestOp>();
34 MemoryAllocationPassOptions passOptions;
35 passOptions.useImmediates = options.memoriesAsImmediates;
36 testPm.addPass(rtg::createMemoryAllocationPass(passOptions));
41 OpPassManager &pm,
const EmissionPipelineOptions &options) {
43 InsertTestToFileMappingPassOptions passOptions;
44 passOptions.splitOutput = options.splitOutput;
45 passOptions.path = options.path;
46 pm.addPass(rtg::createInsertTestToFileMappingPass(passOptions));
48 pm.addPass(rtg::createSimpleTestInlinerPass());
50 auto &testPm = pm.nest<emit::FileOp>();
51 testPm.addPass(rtg::createUniqueValidateOpsPass());
52 testPm.addPass(rtg::createLinearScanRegisterAllocationPass());
55 auto &anyPm = pm.nestAny();
56 anyPm.addPass(mlir::createCSEPass());
59 pm.addPass(rtg::createLowerValidateToLabelsPass());
61 auto &filePm = pm.nest<emit::FileOp>();
62 filePm.addPass(rtg::createLowerUniqueLabelsPass());
63 filePm.addPass(rtg::createEmitRTGISAAssemblyPass());
72 PassPipelineRegistration<RandomizationPipelineOptions>(
73 "rtg-randomization-pipeline",
74 "The default pipeline for randomizing RTG tests.",
76 PassPipelineRegistration<EmissionPipelineOptions>(
77 "rtg-emission-pipeline",
"The default pipeline for emitting RTG tests.",
static std::unique_ptr< Pass > createSimpleCanonicalizerPass()
Create a simple canonicalizer pass.
void populateEmissionPipeline(mlir::OpPassManager &pm, const EmissionPipelineOptions &options)
Adds the emission pipeline to the OpPassManager.
void registerPipelines()
Registers all pipelines for the rtg dialect.
void populateRandomizationPipeline(mlir::OpPassManager &pm, const RandomizationPipelineOptions &options)
Adds the randomization pipeline to the OpPassManager.