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"
35 MlirStringRef filename) {
40 CirctFirtoolFirtoolOptions options,
bool disable) {
41 unwrap(options)->setDisableUnknownAnnotations(disable);
45 CirctFirtoolFirtoolOptions options,
bool value) {
46 unwrap(options)->setDisableAnnotationsClassless(value);
50 CirctFirtoolFirtoolOptions options,
bool value) {
51 unwrap(options)->setLowerAnnotationsNoRefTypePorts(value);
55 CirctFirtoolFirtoolOptions options,
bool value) {
56 unwrap(options)->setAllowAddingPortsOnPublic(value);
60 CirctFirtoolFirtoolOptions options,
66 converted = firrtl::PreserveAggregate::PreserveMode::None;
69 converted = firrtl::PreserveAggregate::PreserveMode::OneDimVec;
72 converted = firrtl::PreserveAggregate::PreserveMode::Vec;
75 converted = firrtl::PreserveAggregate::PreserveMode::All;
79 unwrap(options)->setPreserveAggregate(converted);
88 converted = firrtl::PreserveValues::PreserveMode::Strip;
91 converted = firrtl::PreserveValues::PreserveMode::None;
94 converted = firrtl::PreserveValues::PreserveMode::Named;
97 converted = firrtl::PreserveValues::PreserveMode::All;
101 unwrap(options)->setPreserveValues(converted);
106 unwrap(options)->setEnableDebugInfo(value);
115 converted = firtool::FirtoolOptions::BuildMode::BuildModeDefault;
118 converted = firtool::FirtoolOptions::BuildMode::BuildModeDebug;
121 converted = firtool::FirtoolOptions::BuildMode::BuildModeRelease;
125 unwrap(options)->setBuildMode(converted);
130 unwrap(options)->setDisableLayerSink(value);
134 CirctFirtoolFirtoolOptions options,
bool value) {
135 unwrap(options)->setDisableOptimization(value);
140 unwrap(options)->setVbToBV(value);
145 unwrap(options)->setNoDedup(value);
154 converted = firrtl::CompanionMode::Bind;
157 converted = firrtl::CompanionMode::Instantiate;
160 converted = firrtl::CompanionMode::Drop;
164 unwrap(options)->setCompanionMode(converted);
168 CirctFirtoolFirtoolOptions options,
bool value) {
169 unwrap(options)->setDisableAggressiveMergeConnections(value);
174 unwrap(options)->setLowerMemories(value);
178 MlirStringRef value) {
184 unwrap(options)->setReplSeqMem(value);
188 MlirStringRef value) {
194 unwrap(options)->setExtractTestCode(value);
198 CirctFirtoolFirtoolOptions options,
bool value) {
199 unwrap(options)->setIgnoreReadEnableMem(value);
208 converted = firtool::FirtoolOptions::RandomKind::None;
211 converted = firtool::FirtoolOptions::RandomKind::Mem;
214 converted = firtool::FirtoolOptions::RandomKind::Reg;
217 converted = firtool::FirtoolOptions::RandomKind::All;
221 unwrap(options)->setDisableRandom(converted);
225 CirctFirtoolFirtoolOptions options, MlirStringRef value) {
226 unwrap(options)->setOutputAnnotationFilename(
unwrap(value));
230 CirctFirtoolFirtoolOptions options,
bool value) {
231 unwrap(options)->setEnableAnnotationWarning(value);
236 unwrap(options)->setAddMuxPragmas(value);
241 unwrap(options)->setVerificationFlavor(value);
245 CirctFirtoolFirtoolOptions options,
bool value) {
246 unwrap(options)->setEmitSeparateAlwaysBlocks(value);
250 CirctFirtoolFirtoolOptions options,
bool value) {
251 unwrap(options)->setEtcDisableInstanceExtraction(value);
255 CirctFirtoolFirtoolOptions options,
bool value) {
256 unwrap(options)->setEtcDisableRegisterExtraction(value);
260 CirctFirtoolFirtoolOptions options,
bool value) {
261 unwrap(options)->setEtcDisableModuleInlining(value);
265 CirctFirtoolFirtoolOptions options,
bool value) {
266 unwrap(options)->setAddVivadoRAMAddressConflictSynthesisBugWorkaround(value);
270 MlirStringRef value) {
275 MlirStringRef value) {
280 MlirStringRef value) {
285 MlirStringRef value) {
290 MlirStringRef value) {
295 CirctFirtoolFirtoolOptions options,
bool value) {
296 unwrap(options)->setExportModuleHierarchy(value);
301 unwrap(options)->setStripFirDebugInfo(value);
306 unwrap(options)->setStripDebugInfo(value);
310 CirctFirtoolFirtoolOptions options,
bool value) {
312 unwrap(options)->setDisableCSEinClasses(value);
316 CirctFirtoolFirtoolOptions options,
bool value) {
317 unwrap(options)->setSelectDefaultInstanceChoice(value);
326 CirctFirtoolFirtoolOptions options) {
333 CirctFirtoolFirtoolOptions options) {
340 CirctFirtoolFirtoolOptions options,
341 MlirStringRef inputFilename) {
348 CirctFirtoolFirtoolOptions options) {
354 CirctFirtoolFirtoolOptions options,
355 MlirStringCallback callback,
void *userData) {
357 std::make_unique<mlir::detail::CallbackOstream>(callback, userData);
364 CirctFirtoolFirtoolOptions options,
365 MlirStringRef directory) {
372 CirctFirtoolFirtoolOptions options) {
378 CirctFirtoolFirtoolOptions options,
379 MlirStringCallback callback,
void *userData) {
381 std::make_unique<mlir::detail::CallbackOstream>(callback, userData);
383 *std::move(stream)));
return wrap(CMemoryType::get(unwrap(ctx), baseType, numElements))
static EvaluatorValuePtr unwrap(OMEvaluatorValue c)
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.