9#ifndef CIRCT_DIALECT_RTG_TRANSFORMS_RTGPASSPIPELINES_H
10#define CIRCT_DIALECT_RTG_TRANSFORMS_RTGPASSPIPELINES_H
12#include "mlir/Pass/PassOptions.h"
19 :
public mlir::PassPipelineOptions<RandomizationPipelineOptions> {
20 PassOptions::Option<unsigned>
seed{*
this,
"seed",
21 llvm::cl::desc(
"Seed for the RNG.")};
23 *
this,
"memories-as-immediates",
24 llvm::cl::desc(
"Lower memories to immediates instead of labels."),
25 llvm::cl::init(
true)};
30 :
public mlir::PassPipelineOptions<EmissionPipelineOptions> {
32 *
this,
"split-output",
33 llvm::cl::desc(
"If 'true' emits one file per 'rtg.test' in the IR. The "
34 "name of the file matches the test name and is placed in "
35 "'path'. Otherwise, path is interpreted as the full file "
36 "path including filename."),
37 llvm::cl::init(
false)};
38 PassOptions::Option<std::string>
path{
40 llvm::cl::desc(
"The directory or file path in which the output files "
41 "should be created. If empty is is emitted to stderr (not "
42 "allowed if 'split-output' is set to 'true')")};
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.
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
Options for the RTG emission pipeline.
PassOptions::Option< bool > splitOutput
PassOptions::Option< std::string > path
Options for the RTG randomization pipeline.
PassOptions::Option< bool > memoriesAsImmediates
PassOptions::Option< unsigned > seed