Skip to content

Commit e5603e1

Browse files
committed
[ExportVerilog] Use ODS constructor for pre-passes
Convert ExportVerilog pre-passes to use ODS constructors instead of unnecessarily hand-rolling custom constructors. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
1 parent ec79b1b commit e5603e1

File tree

7 files changed

+8
-37
lines changed

7 files changed

+8
-37
lines changed

include/circt/Conversion/ExportVerilog.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,6 @@ class HWModuleLike;
3030
class HWEmittableModuleLike;
3131
} // namespace hw
3232

33-
std::unique_ptr<mlir::Pass>
34-
createTestApplyLoweringOptionPass(llvm::StringRef options);
35-
std::unique_ptr<mlir::Pass> createTestApplyLoweringOptionPass();
36-
37-
std::unique_ptr<mlir::Pass> createHWLowerInstanceChoicesPass();
38-
std::unique_ptr<mlir::Pass> createPrepareForEmissionPass();
39-
std::unique_ptr<mlir::Pass> createLegalizeAnonEnumsPass();
40-
4133
std::unique_ptr<mlir::Pass>
4234
createExportVerilogPass(std::unique_ptr<llvm::raw_ostream> os);
4335
std::unique_ptr<mlir::Pass> createExportVerilogPass(llvm::raw_ostream &os);

include/circt/Conversion/Passes.td

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ def TestApplyLoweringOption : Pass<"test-apply-lowering-options",
8383
construction.
8484
}];
8585

86-
let constructor = "createTestApplyLoweringOptionPass()";
8786
let dependentDialects = [
8887
"circt::sv::SVDialect", "circt::comb::CombDialect", "circt::hw::HWDialect"
8988
];
@@ -98,7 +97,6 @@ def LegalizeAnonEnums : Pass<"legalize-anon-enums", "mlir::ModuleOp"> {
9897
This pass transforms all anonymous enumeration types into typedecls to work
9998
around difference in how anonymous enumerations work in SystemVerilog.
10099
}];
101-
let constructor = "createLegalizeAnonEnumsPass()";
102100
let dependentDialects = [
103101
"circt::sv::SVDialect", "circt::comb::CombDialect", "circt::hw::HWDialect"
104102
];
@@ -111,8 +109,6 @@ def HWLowerInstanceChoices : Pass<"hw-lower-instance-choices",
111109
This pass runs as part of verilog emission.
112110
It introduces the macros & file lists to which instance choices lower to.
113111
}];
114-
115-
let constructor = "createHWLowerInstanceChoicesPass()";
116112
let dependentDialects = [
117113
"circt::sv::SVDialect", "circt::hw::HWDialect"
118114
];
@@ -125,8 +121,6 @@ def PrepareForEmission : Pass<"prepare-for-emission"> {
125121
It is not necessary for users to run this pass explicitly since
126122
ExportVerilog internally runs PrepareForEmission.
127123
}];
128-
129-
let constructor = "createPrepareForEmissionPass()";
130124
let dependentDialects = [
131125
"circt::sv::SVDialect", "circt::comb::CombDialect", "circt::hw::HWDialect"
132126
];
@@ -856,7 +850,7 @@ def ConvertAIGToComb: Pass<"convert-aig-to-comb", "hw::HWModuleOp"> {
856850
def ConvertCombToDatapath: Pass<"convert-comb-to-datapath", "hw::HWModuleOp"> {
857851
let summary = "Lower Comb ops to Datapath ops";
858852
let description = [{
859-
This pass converts arithmetic Comb operations into Datapath operations that
853+
This pass converts arithmetic Comb operations into Datapath operations that
860854
leverage redundant number representations (carry save). Primarily for use
861855
in the circt-synth flow.
862856
}];

lib/Conversion/ExportVerilog/ApplyLoweringOptions.cpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ namespace {
2828
struct TestApplyLoweringOptionPass
2929
: public circt::impl::TestApplyLoweringOptionBase<
3030
TestApplyLoweringOptionPass> {
31-
TestApplyLoweringOptionPass() = default;
31+
using Base::Base;
32+
3233
void runOnOperation() override {
3334
if (!optionsString.hasValue()) {
3435
markAllAnalysesPreserved();
@@ -42,7 +43,3 @@ struct TestApplyLoweringOptionPass
4243
}
4344
};
4445
} // namespace
45-
46-
std::unique_ptr<mlir::Pass> circt::createTestApplyLoweringOptionPass() {
47-
return std::make_unique<TestApplyLoweringOptionPass>();
48-
}

lib/Conversion/ExportVerilog/ExportVerilog.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7116,10 +7116,10 @@ struct ExportVerilogPass
71167116
void runOnOperation() override {
71177117
// Prepare the ops in the module for emission.
71187118
mlir::OpPassManager preparePM("builtin.module");
7119-
preparePM.addPass(createLegalizeAnonEnumsPass());
7120-
preparePM.addPass(createHWLowerInstanceChoicesPass());
7119+
preparePM.addPass(createLegalizeAnonEnums());
7120+
preparePM.addPass(createHWLowerInstanceChoices());
71217121
auto &modulePM = preparePM.nestAny();
7122-
modulePM.addPass(createPrepareForEmissionPass());
7122+
modulePM.addPass(createPrepareForEmission());
71237123
if (failed(runPipeline(preparePM, getOperation())))
71247124
return signalPassFailure();
71257125

@@ -7298,10 +7298,10 @@ struct ExportSplitVerilogPass
72987298
void runOnOperation() override {
72997299
// Prepare the ops in the module for emission.
73007300
mlir::OpPassManager preparePM("builtin.module");
7301-
preparePM.addPass(createHWLowerInstanceChoicesPass());
7301+
preparePM.addPass(createHWLowerInstanceChoices());
73027302

73037303
auto &modulePM = preparePM.nest<hw::HWModuleOp>();
7304-
modulePM.addPass(createPrepareForEmissionPass());
7304+
modulePM.addPass(createPrepareForEmission());
73057305
if (failed(runPipeline(preparePM, getOperation())))
73067306
return signalPassFailure();
73077307

lib/Conversion/ExportVerilog/HWLowerInstanceChoices.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,3 @@ void HWLowerInstanceChoicesPass::runOnOperation() {
111111
if (failed(lowerHWInstanceChoices(module)))
112112
signalPassFailure();
113113
}
114-
115-
std::unique_ptr<mlir::Pass> circt::createHWLowerInstanceChoicesPass() {
116-
return std::make_unique<HWLowerInstanceChoicesPass>();
117-
}

lib/Conversion/ExportVerilog/LegalizeAnonEnums.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,3 @@ struct LegalizeAnonEnums
205205
};
206206

207207
} // end anonymous namespace
208-
209-
std::unique_ptr<mlir::Pass> circt::createLegalizeAnonEnumsPass() {
210-
return std::make_unique<LegalizeAnonEnums>();
211-
}

lib/Conversion/ExportVerilog/PrepareForEmission.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1404,7 +1404,3 @@ struct PrepareForEmissionPass
14041404
};
14051405

14061406
} // end anonymous namespace
1407-
1408-
std::unique_ptr<mlir::Pass> circt::createPrepareForEmissionPass() {
1409-
return std::make_unique<PrepareForEmissionPass>();
1410-
}

0 commit comments

Comments
 (0)