CIRCT  20.0.0git
Firtool.cpp
Go to the documentation of this file.
1 //===- Firtool.cpp - C Interface to Firtool-lib ---------------------------===//
2 //
3 // Implements a C Interface for Firtool-lib.
4 //
5 //===----------------------------------------------------------------------===//
6 
9 #include "mlir/CAPI/IR.h"
10 #include "mlir/CAPI/Pass.h"
11 #include "mlir/CAPI/Support.h"
12 #include "mlir/CAPI/Utils.h"
13 #include "llvm/Support/CommandLine.h"
14 #include "llvm/Support/raw_ostream.h"
15 
16 using namespace circt;
17 
18 DEFINE_C_API_PTR_METHODS(CirctFirtoolFirtoolOptions,
20 
21 //===----------------------------------------------------------------------===//
22 // Option API.
23 //===----------------------------------------------------------------------===//
24 
25 CirctFirtoolFirtoolOptions circtFirtoolOptionsCreateDefault() {
26  auto *options = new firtool::FirtoolOptions();
27  return wrap(options);
28 }
29 
30 void circtFirtoolOptionsDestroy(CirctFirtoolFirtoolOptions options) {
31  delete unwrap(options);
32 }
33 
34 void circtFirtoolOptionsSetOutputFilename(CirctFirtoolFirtoolOptions options,
35  MlirStringRef filename) {
36  unwrap(options)->setOutputFilename(unwrap(filename));
37 }
38 
40  CirctFirtoolFirtoolOptions options, bool disable) {
41  unwrap(options)->setDisableUnknownAnnotations(disable);
42 }
43 
45  CirctFirtoolFirtoolOptions options, bool value) {
46  unwrap(options)->setDisableAnnotationsClassless(value);
47 }
48 
50  CirctFirtoolFirtoolOptions options, bool value) {
51  unwrap(options)->setLowerAnnotationsNoRefTypePorts(value);
52 }
53 
55  CirctFirtoolFirtoolOptions options, bool value) {
56  unwrap(options)->setAllowAddingPortsOnPublic(value);
57 }
58 
60  CirctFirtoolFirtoolOptions options,
63 
64  switch (value) {
66  converted = firrtl::PreserveAggregate::PreserveMode::None;
67  break;
70  break;
73  break;
76  break;
77  }
78 
79  unwrap(options)->setPreserveAggregate(converted);
80 }
81 
83  CirctFirtoolFirtoolOptions options, CirctFirtoolPreserveValuesMode value) {
85 
86  switch (value) {
89  break;
91  converted = firrtl::PreserveValues::PreserveMode::None;
92  break;
95  break;
98  break;
99  }
100 
101  unwrap(options)->setPreserveValues(converted);
102 }
103 
104 void circtFirtoolOptionsSetEnableDebugInfo(CirctFirtoolFirtoolOptions options,
105  bool value) {
106  unwrap(options)->setEnableDebugInfo(value);
107 }
108 
109 void circtFirtoolOptionsSetBuildMode(CirctFirtoolFirtoolOptions options,
110  CirctFirtoolBuildMode value) {
112 
113  switch (value) {
115  converted = firtool::FirtoolOptions::BuildMode::BuildModeDefault;
116  break;
118  converted = firtool::FirtoolOptions::BuildMode::BuildModeDebug;
119  break;
121  converted = firtool::FirtoolOptions::BuildMode::BuildModeRelease;
122  break;
123  }
124 
125  unwrap(options)->setBuildMode(converted);
126 }
127 
129  CirctFirtoolFirtoolOptions options, bool value) {
130  unwrap(options)->setDisableOptimization(value);
131 }
132 
134  CirctFirtoolFirtoolOptions options, bool value) {
135  unwrap(options)->setExportChiselInterface(value);
136 }
137 
139  CirctFirtoolFirtoolOptions options, MlirStringRef value) {
140  unwrap(options)->setChiselInterfaceOutDirectory(unwrap(value));
141 }
142 
143 void circtFirtoolOptionsSetVbToBv(CirctFirtoolFirtoolOptions options,
144  bool value) {
145  unwrap(options)->setVbToBV(value);
146 }
147 
148 void circtFirtoolOptionsSetNoDedup(CirctFirtoolFirtoolOptions options,
149  bool value) {
150  unwrap(options)->setNoDedup(value);
151 }
152 
153 void circtFirtoolOptionsSetCompanionMode(CirctFirtoolFirtoolOptions options,
155  firrtl::CompanionMode converted;
156 
157  switch (value) {
159  converted = firrtl::CompanionMode::Bind;
160  break;
163  break;
165  converted = firrtl::CompanionMode::Drop;
166  break;
167  }
168 
169  unwrap(options)->setCompanionMode(converted);
170 }
171 
173  CirctFirtoolFirtoolOptions options, bool value) {
174  unwrap(options)->setDisableAggressiveMergeConnections(value);
175 }
176 
177 void circtFirtoolOptionsSetEmitOmir(CirctFirtoolFirtoolOptions options,
178  bool value) {
179  unwrap(options)->setEmitOMIR(value);
180 }
181 
182 void circtFirtoolOptionsSetOmirOutFile(CirctFirtoolFirtoolOptions options,
183  MlirStringRef value) {
184  unwrap(options)->setOmirOutFile(unwrap(value));
185 }
186 
187 void circtFirtoolOptionsSetLowerMemories(CirctFirtoolFirtoolOptions options,
188  bool value) {
189  unwrap(options)->setLowerMemories(value);
190 }
191 
192 void circtFirtoolOptionsSetBlackBoxRootPath(CirctFirtoolFirtoolOptions options,
193  MlirStringRef value) {
194  unwrap(options)->setBlackBoxRootPath(unwrap(value));
195 }
196 
197 void circtFirtoolOptionsSetReplSeqMem(CirctFirtoolFirtoolOptions options,
198  bool value) {
199  unwrap(options)->setReplSeqMem(value);
200 }
201 
202 void circtFirtoolOptionsSetReplSeqMemFile(CirctFirtoolFirtoolOptions options,
203  MlirStringRef value) {
204  unwrap(options)->setReplSeqMemFile(unwrap(value));
205 }
206 
207 void circtFirtoolOptionsSetExtractTestCode(CirctFirtoolFirtoolOptions options,
208  bool value) {
209  unwrap(options)->setExtractTestCode(value);
210 }
211 
213  CirctFirtoolFirtoolOptions options, bool value) {
214  unwrap(options)->setIgnoreReadEnableMem(value);
215 }
216 
217 void circtFirtoolOptionsSetDisableRandom(CirctFirtoolFirtoolOptions options,
218  CirctFirtoolRandomKind value) {
220 
221  switch (value) {
224  break;
227  break;
230  break;
233  break;
234  }
235 
236  unwrap(options)->setDisableRandom(converted);
237 }
238 
240  CirctFirtoolFirtoolOptions options, MlirStringRef value) {
241  unwrap(options)->setOutputAnnotationFilename(unwrap(value));
242 }
243 
245  CirctFirtoolFirtoolOptions options, bool value) {
246  unwrap(options)->setEnableAnnotationWarning(value);
247 }
248 
249 void circtFirtoolOptionsSetAddMuxPragmas(CirctFirtoolFirtoolOptions options,
250  bool value) {
251  unwrap(options)->setAddMuxPragmas(value);
252 }
253 
255  CirctFirtoolFirtoolOptions options, firrtl::VerificationFlavor value) {
256  unwrap(options)->setVerificationFlavor(value);
257 }
258 
260  CirctFirtoolFirtoolOptions options, bool value) {
261  unwrap(options)->setEmitSeparateAlwaysBlocks(value);
262 }
263 
265  CirctFirtoolFirtoolOptions options, bool value) {
266  unwrap(options)->setEtcDisableInstanceExtraction(value);
267 }
268 
270  CirctFirtoolFirtoolOptions options, bool value) {
271  unwrap(options)->setEtcDisableRegisterExtraction(value);
272 }
273 
275  CirctFirtoolFirtoolOptions options, bool value) {
276  unwrap(options)->setEtcDisableModuleInlining(value);
277 }
278 
280  CirctFirtoolFirtoolOptions options, bool value) {
281  unwrap(options)->setAddVivadoRAMAddressConflictSynthesisBugWorkaround(value);
282 }
283 
284 void circtFirtoolOptionsSetCkgModuleName(CirctFirtoolFirtoolOptions options,
285  MlirStringRef value) {
286  unwrap(options)->setCkgModuleName(unwrap(value));
287 }
288 
289 void circtFirtoolOptionsSetCkgInputName(CirctFirtoolFirtoolOptions options,
290  MlirStringRef value) {
291  unwrap(options)->setCkgInputName(unwrap(value));
292 }
293 
294 void circtFirtoolOptionsSetCkgOutputName(CirctFirtoolFirtoolOptions options,
295  MlirStringRef value) {
296  unwrap(options)->setCkgOutputName(unwrap(value));
297 }
298 
299 void circtFirtoolOptionsSetCkgEnableName(CirctFirtoolFirtoolOptions options,
300  MlirStringRef value) {
301  unwrap(options)->setCkgEnableName(unwrap(value));
302 }
303 
304 void circtFirtoolOptionsSetCkgTestEnableName(CirctFirtoolFirtoolOptions options,
305  MlirStringRef value) {
306  unwrap(options)->setCkgTestEnableName(unwrap(value));
307 }
308 
310  CirctFirtoolFirtoolOptions options, bool value) {
311  unwrap(options)->setExportModuleHierarchy(value);
312 }
313 
314 void circtFirtoolOptionsSetStripFirDebugInfo(CirctFirtoolFirtoolOptions options,
315  bool value) {
316  unwrap(options)->setStripFirDebugInfo(value);
317 }
318 
319 void circtFirtoolOptionsSetStripDebugInfo(CirctFirtoolFirtoolOptions options,
320  bool value) {
321  unwrap(options)->setStripDebugInfo(value);
322 }
323 
324 //===----------------------------------------------------------------------===//
325 // Populate API.
326 //===----------------------------------------------------------------------===//
327 
328 MlirLogicalResult
330  CirctFirtoolFirtoolOptions options) {
331  return wrap(
333 }
334 
335 MlirLogicalResult
337  CirctFirtoolFirtoolOptions options,
338  MlirStringRef inputFilename) {
339  return wrap(firtool::populateCHIRRTLToLowFIRRTL(*unwrap(pm), *unwrap(options),
340  unwrap(inputFilename)));
341 }
342 
343 MlirLogicalResult
345  CirctFirtoolFirtoolOptions options) {
346  return wrap(firtool::populateLowFIRRTLToHW(*unwrap(pm), *unwrap(options)));
347 }
348 
349 MlirLogicalResult
350 circtFirtoolPopulateHWToSV(MlirPassManager pm,
351  CirctFirtoolFirtoolOptions options) {
352  return wrap(firtool::populateHWToSV(*unwrap(pm), *unwrap(options)));
353 }
354 
355 MlirLogicalResult
357  CirctFirtoolFirtoolOptions options,
358  MlirStringCallback callback, void *userData) {
359  auto stream =
360  std::make_unique<mlir::detail::CallbackOstream>(callback, userData);
361  return wrap(firtool::populateExportVerilog(*unwrap(pm), *unwrap(options),
362  std::move(stream)));
363 }
364 
365 MlirLogicalResult
367  CirctFirtoolFirtoolOptions options,
368  MlirStringRef directory) {
369  return wrap(firtool::populateExportSplitVerilog(*unwrap(pm), *unwrap(options),
370  unwrap(directory)));
371 }
372 
373 MlirLogicalResult
375  CirctFirtoolFirtoolOptions options) {
376  return wrap(firtool::populateFinalizeIR(*unwrap(pm), *unwrap(options)));
377 }
378 
379 MlirLogicalResult
380 circtFirtoolpopulateHWToBTOR2(MlirPassManager pm,
381  CirctFirtoolFirtoolOptions options,
382  MlirStringCallback callback, void *userData) {
383  auto stream =
384  std::make_unique<mlir::detail::CallbackOstream>(callback, userData);
385  return wrap(firtool::populateHWToBTOR2(*unwrap(pm), *unwrap(options),
386  *std::move(stream)));
387 }
void circtFirtoolOptionsSetDisableAggressiveMergeConnections(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:172
void circtFirtoolOptionsSetStripDebugInfo(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:319
void circtFirtoolOptionsSetEmitSeparateAlwaysBlocks(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:259
void circtFirtoolOptionsSetEmitOmir(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:177
void circtFirtoolOptionsSetDisableUnknownAnnotations(CirctFirtoolFirtoolOptions options, bool disable)
Definition: Firtool.cpp:39
void circtFirtoolOptionsSetExportModuleHierarchy(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:309
void circtFirtoolOptionsSetCkgOutputName(CirctFirtoolFirtoolOptions options, MlirStringRef value)
Definition: Firtool.cpp:294
void circtFirtoolOptionsSetCkgTestEnableName(CirctFirtoolFirtoolOptions options, MlirStringRef value)
Definition: Firtool.cpp:304
MlirLogicalResult circtFirtoolpopulateHWToBTOR2(MlirPassManager pm, CirctFirtoolFirtoolOptions options, MlirStringCallback callback, void *userData)
Definition: Firtool.cpp:380
void circtFirtoolOptionsSetVerificationFlavor(CirctFirtoolFirtoolOptions options, firrtl::VerificationFlavor value)
Definition: Firtool.cpp:254
void circtFirtoolOptionsSetCkgEnableName(CirctFirtoolFirtoolOptions options, MlirStringRef value)
Definition: Firtool.cpp:299
void circtFirtoolOptionsSetPreserveAggregate(CirctFirtoolFirtoolOptions options, CirctFirtoolPreserveAggregateMode value)
Definition: Firtool.cpp:59
void circtFirtoolOptionsSetDisableOptimization(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:128
void circtFirtoolOptionsSetLowerAnnotationsNoRefTypePorts(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:49
void circtFirtoolOptionsSetIgnoreReadEnableMem(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:212
void circtFirtoolOptionsSetOutputFilename(CirctFirtoolFirtoolOptions options, MlirStringRef filename)
Definition: Firtool.cpp:34
void circtFirtoolOptionsSetReplSeqMemFile(CirctFirtoolFirtoolOptions options, MlirStringRef value)
Definition: Firtool.cpp:202
MlirLogicalResult circtFirtoolPopulateCHIRRTLToLowFIRRTL(MlirPassManager pm, CirctFirtoolFirtoolOptions options, MlirStringRef inputFilename)
Definition: Firtool.cpp:336
void circtFirtoolOptionsSetDisableAnnotationsClassless(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:44
void circtFirtoolOptionsDestroy(CirctFirtoolFirtoolOptions options)
Definition: Firtool.cpp:30
void circtFirtoolOptionsSetVbToBv(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:143
void circtFirtoolOptionsSetOutputAnnotationFilename(CirctFirtoolFirtoolOptions options, MlirStringRef value)
Definition: Firtool.cpp:239
void circtFirtoolOptionsSetNoDedup(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:148
void circtFirtoolOptionsSetBlackBoxRootPath(CirctFirtoolFirtoolOptions options, MlirStringRef value)
Definition: Firtool.cpp:192
void circtFirtoolOptionsSetOmirOutFile(CirctFirtoolFirtoolOptions options, MlirStringRef value)
Definition: Firtool.cpp:182
void circtFirtoolOptionsSetCkgModuleName(CirctFirtoolFirtoolOptions options, MlirStringRef value)
Definition: Firtool.cpp:284
void circtFirtoolOptionsSetDisableRandom(CirctFirtoolFirtoolOptions options, CirctFirtoolRandomKind value)
Definition: Firtool.cpp:217
MlirLogicalResult circtFirtoolPopulateFinalizeIR(MlirPassManager pm, CirctFirtoolFirtoolOptions options)
Definition: Firtool.cpp:374
void circtFirtoolOptionsSetAllowAddingPortsOnPublic(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:54
void circtFirtoolOptionsSetEtcDisableInstanceExtraction(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:264
void circtFirtoolOptionsSetEnableAnnotationWarning(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:244
void circtFirtoolOptionsSetReplSeqMem(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:197
void circtFirtoolOptionsSetEnableDebugInfo(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:104
void circtFirtoolOptionsSetExportChiselInterface(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:133
void circtFirtoolOptionsSetCkgInputName(CirctFirtoolFirtoolOptions options, MlirStringRef value)
Definition: Firtool.cpp:289
void circtFirtoolOptionsSetBuildMode(CirctFirtoolFirtoolOptions options, CirctFirtoolBuildMode value)
Definition: Firtool.cpp:109
MlirLogicalResult circtFirtoolPopulateHWToSV(MlirPassManager pm, CirctFirtoolFirtoolOptions options)
Definition: Firtool.cpp:350
void circtFirtoolOptionsSetLowerMemories(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:187
void circtFirtoolOptionsSetEtcDisableModuleInlining(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:274
void circtFirtoolOptionsSetAddVivadoRAMAddressConflictSynthesisBugWorkaround(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:279
MlirLogicalResult circtFirtoolPopulateExportVerilog(MlirPassManager pm, CirctFirtoolFirtoolOptions options, MlirStringCallback callback, void *userData)
Definition: Firtool.cpp:356
MlirLogicalResult circtFirtoolPopulateLowFIRRTLToHW(MlirPassManager pm, CirctFirtoolFirtoolOptions options)
Definition: Firtool.cpp:344
void circtFirtoolOptionsSetExtractTestCode(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:207
void circtFirtoolOptionsSetChiselInterfaceOutDirectory(CirctFirtoolFirtoolOptions options, MlirStringRef value)
Definition: Firtool.cpp:138
void circtFirtoolOptionsSetStripFirDebugInfo(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:314
DEFINE_C_API_PTR_METHODS(CirctFirtoolFirtoolOptions, circt::firtool::FirtoolOptions) CirctFirtoolFirtoolOptions circtFirtoolOptionsCreateDefault()
Definition: Firtool.cpp:18
void circtFirtoolOptionsSetAddMuxPragmas(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:249
void circtFirtoolOptionsSetCompanionMode(CirctFirtoolFirtoolOptions options, CirctFirtoolCompanionMode value)
Definition: Firtool.cpp:153
void circtFirtoolOptionsSetEtcDisableRegisterExtraction(CirctFirtoolFirtoolOptions options, bool value)
Definition: Firtool.cpp:269
MlirLogicalResult circtFirtoolPopulatePreprocessTransforms(MlirPassManager pm, CirctFirtoolFirtoolOptions options)
Definition: Firtool.cpp:329
MlirLogicalResult circtFirtoolPopulateExportSplitVerilog(MlirPassManager pm, CirctFirtoolFirtoolOptions options, MlirStringRef directory)
Definition: Firtool.cpp:366
void circtFirtoolOptionsSetPreserveValues(CirctFirtoolFirtoolOptions options, CirctFirtoolPreserveValuesMode value)
Definition: Firtool.cpp:82
return wrap(CMemoryType::get(unwrap(ctx), baseType, numElements))
static EvaluatorValuePtr unwrap(OMEvaluatorValue c)
Definition: OM.cpp:113
CirctFirtoolCompanionMode
Definition: Firtool.h:42
@ CIRCT_FIRTOOL_COMPANION_MODE_BIND
Definition: Firtool.h:43
@ CIRCT_FIRTOOL_COMPANION_MODE_DROP
Definition: Firtool.h:45
@ CIRCT_FIRTOOL_COMPANION_MODE_INSTANTIATE
Definition: Firtool.h:44
CirctFirtoolRandomKind
Definition: Firtool.h:56
@ CIRCT_FIRTOOL_RANDOM_KIND_MEM
Definition: Firtool.h:58
@ CIRCT_FIRTOOL_RANDOM_KIND_NONE
Definition: Firtool.h:57
@ CIRCT_FIRTOOL_RANDOM_KIND_REG
Definition: Firtool.h:59
@ CIRCT_FIRTOOL_RANDOM_KIND_ALL
Definition: Firtool.h:60
MLIR_CAPI_EXPORTED CirctFirtoolFirtoolOptions circtFirtoolOptionsCreateDefault(void)
CirctFirtoolPreserveAggregateMode
Definition: Firtool.h:26
@ CIRCT_FIRTOOL_PRESERVE_AGGREGATE_MODE_NONE
Definition: Firtool.h:27
@ CIRCT_FIRTOOL_PRESERVE_AGGREGATE_MODE_ALL
Definition: Firtool.h:30
@ CIRCT_FIRTOOL_PRESERVE_AGGREGATE_MODE_VEC
Definition: Firtool.h:29
@ CIRCT_FIRTOOL_PRESERVE_AGGREGATE_MODE_ONE_DIM_VEC
Definition: Firtool.h:28
CirctFirtoolBuildMode
Definition: Firtool.h:49
@ CIRCT_FIRTOOL_BUILD_MODE_RELEASE
Definition: Firtool.h:52
@ CIRCT_FIRTOOL_BUILD_MODE_DEBUG
Definition: Firtool.h:51
@ CIRCT_FIRTOOL_BUILD_MODE_DEFAULT
Definition: Firtool.h:50
CirctFirtoolPreserveValuesMode
Definition: Firtool.h:34
@ CIRCT_FIRTOOL_PRESERVE_VALUES_MODE_STRIP
Definition: Firtool.h:35
@ CIRCT_FIRTOOL_PRESERVE_VALUES_MODE_ALL
Definition: Firtool.h:38
@ CIRCT_FIRTOOL_PRESERVE_VALUES_MODE_NAMED
Definition: Firtool.h:37
@ CIRCT_FIRTOOL_PRESERVE_VALUES_MODE_NONE
Definition: Firtool.h:36
Set of options used to control the behavior of the firtool pipeline.
Definition: Firtool.h:30
@ All
Preserve all aggregate values.
Definition: Passes.h:42
@ OneDimVec
Preserve only 1d vectors of ground type (e.g. UInt<2>[3]).
Definition: Passes.h:36
@ Vec
Preserve only vectors (e.g. UInt<2>[3][3]).
Definition: Passes.h:39
@ Strip
Strip all names. No name on declaration is preserved.
Definition: Passes.h:50
LogicalResult populateHWToBTOR2(mlir::PassManager &pm, const FirtoolOptions &opt, llvm::raw_ostream &os)
Definition: Firtool.cpp:417
LogicalResult populateExportSplitVerilog(mlir::PassManager &pm, const FirtoolOptions &opt, llvm::StringRef directory)
Definition: Firtool.cpp:399
LogicalResult populateHWToSV(mlir::PassManager &pm, const FirtoolOptions &opt)
Definition: Firtool.cpp:288
LogicalResult populateLowFIRRTLToHW(mlir::PassManager &pm, const FirtoolOptions &opt)
Definition: Firtool.cpp:247
LogicalResult populateExportVerilog(mlir::PassManager &pm, const FirtoolOptions &opt, std::unique_ptr< llvm::raw_ostream > os)
Definition: Firtool.cpp:380
LogicalResult populatePreprocessTransforms(mlir::PassManager &pm, const FirtoolOptions &opt)
Definition: Firtool.cpp:27
LogicalResult populateFinalizeIR(mlir::PassManager &pm, const FirtoolOptions &opt)
Definition: Firtool.cpp:409
LogicalResult populateCHIRRTLToLowFIRRTL(mlir::PassManager &pm, const FirtoolOptions &opt, StringRef inputFilename)
Definition: Firtool.cpp:55
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
Definition: DebugAnalysis.h:21