Loading [MathJax]/jax/output/HTML-CSS/config.js
CIRCT 22.0.0git
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RTGPassPipelines.h
Go to the documentation of this file.
1//===----------------------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef CIRCT_DIALECT_RTG_TRANSFORMS_RTGPASSPIPELINES_H
10#define CIRCT_DIALECT_RTG_TRANSFORMS_RTGPASSPIPELINES_H
11
12#include "mlir/Pass/PassOptions.h"
13
14namespace circt {
15namespace rtg {
16
17/// Options for the RTG randomization pipeline.
19 : public mlir::PassPipelineOptions<RandomizationPipelineOptions> {
20 PassOptions::Option<unsigned> seed{*this, "seed",
21 llvm::cl::desc("Seed for the RNG.")};
22 PassOptions::Option<bool> memoriesAsImmediates{
23 *this, "memories-as-immediates",
24 llvm::cl::desc("Lower memories to immediates instead of labels."),
25 llvm::cl::init(true)};
26};
27
28//===----------------------------------------------------------------------===//
29// Building and Registering.
30//===----------------------------------------------------------------------===//
31
32/// Adds the randomization pipeline to the `OpPassManager`.
33void buildRandomizationPipeline(mlir::OpPassManager &pm,
34 const RandomizationPipelineOptions &options);
35
36/// Registers all pipelines for the `rtg` dialect.
38
39} // namespace rtg
40} // namespace circt
41
42#endif // CIRCT_DIALECT_RTG_TRANSFORMS_RTGPASSPIPELINES_H
void registerPipelines()
Registers all pipelines for the rtg dialect.
void buildRandomizationPipeline(mlir::OpPassManager &pm, const RandomizationPipelineOptions &options)
Adds the randomization pipeline to the OpPassManager.
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
Definition rtg.py:1
Options for the RTG randomization pipeline.
PassOptions::Option< bool > memoriesAsImmediates
PassOptions::Option< unsigned > seed