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,
61 converted = firrtl::PreserveAggregate::PreserveMode::None;
64 converted = firrtl::PreserveAggregate::PreserveMode::OneDimVec;
67 converted = firrtl::PreserveAggregate::PreserveMode::Vec;
70 converted = firrtl::PreserveAggregate::PreserveMode::All;
74 unwrap(options)->setPreserveAggregate(converted);
83 converted = firrtl::PreserveValues::PreserveMode::Strip;
86 converted = firrtl::PreserveValues::PreserveMode::None;
89 converted = firrtl::PreserveValues::PreserveMode::Named;
92 converted = firrtl::PreserveValues::PreserveMode::All;
96 unwrap(options)->setPreserveValues(converted);
101 unwrap(options)->setEnableDebugInfo(value);
110 converted = firtool::FirtoolOptions::BuildMode::BuildModeDefault;
113 converted = firtool::FirtoolOptions::BuildMode::BuildModeDebug;
116 converted = firtool::FirtoolOptions::BuildMode::BuildModeRelease;
120 unwrap(options)->setBuildMode(converted);
125 unwrap(options)->setDisableLayerSink(value);
129 CirctFirtoolFirtoolOptions options,
bool value) {
130 unwrap(options)->setDisableOptimization(value);
135 unwrap(options)->setVbToBV(value);
140 unwrap(options)->setNoDedup(value);
149 converted = firrtl::CompanionMode::Bind;
152 converted = firrtl::CompanionMode::Instantiate;
155 converted = firrtl::CompanionMode::Drop;
159 unwrap(options)->setCompanionMode(converted);
164 unwrap(options)->setNoViews(value);
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) {
193 CirctFirtoolFirtoolOptions options,
bool value) {
194 unwrap(options)->setIgnoreReadEnableMem(value);
199 auto *opts =
unwrap(options);
204 opts->mergeDisableRandom(firtool::FirtoolOptions::RandomKind::Mem);
207 opts->mergeDisableRandom(firtool::FirtoolOptions::RandomKind::Reg);
210 opts->mergeDisableRandom(firtool::FirtoolOptions::RandomKind::All);
216 CirctFirtoolFirtoolOptions options, MlirStringRef value) {
217 unwrap(options)->setOutputAnnotationFilename(
unwrap(value));
221 CirctFirtoolFirtoolOptions options,
bool value) {
222 unwrap(options)->setEnableAnnotationWarning(value);
227 unwrap(options)->setWarnOnTruncation(value);
232 unwrap(options)->setLowerToCore(value);
237 unwrap(options)->setAddMuxPragmas(value);
242 unwrap(options)->setVerificationFlavor(value);
246 CirctFirtoolFirtoolOptions options,
bool value) {
247 unwrap(options)->setEmitSeparateAlwaysBlocks(value);
251 CirctFirtoolFirtoolOptions options,
bool value) {
252 unwrap(options)->setAddVivadoRAMAddressConflictSynthesisBugWorkaround(value);
256 MlirStringRef value) {
261 MlirStringRef value) {
266 MlirStringRef value) {
271 MlirStringRef value) {
276 MlirStringRef value) {
281 CirctFirtoolFirtoolOptions options,
bool value) {
282 unwrap(options)->setExportModuleHierarchy(value);
287 unwrap(options)->setStripFirDebugInfo(value);
292 unwrap(options)->setStripDebugInfo(value);
296 CirctFirtoolFirtoolOptions options,
bool value) {
298 unwrap(options)->setDisableCSEinClasses(value);
302 CirctFirtoolFirtoolOptions options,
bool value) {
303 unwrap(options)->setSelectDefaultInstanceChoice(value);
311 converted = firtool::FirtoolOptions::DomainMode::Disable;
314 converted = firtool::FirtoolOptions::DomainMode::Check;
317 converted = firtool::FirtoolOptions::DomainMode::Infer;
320 converted = firtool::FirtoolOptions::DomainMode::InferAll;
323 unwrap(options)->setDomainMode(converted);
332 CirctFirtoolFirtoolOptions options) {
339 CirctFirtoolFirtoolOptions options) {
346 CirctFirtoolFirtoolOptions options,
347 MlirStringRef inputFilename) {
354 CirctFirtoolFirtoolOptions options) {
360 CirctFirtoolFirtoolOptions options,
361 MlirStringCallback callback,
void *userData) {
363 std::make_unique<mlir::detail::CallbackOstream>(callback, userData);
370 CirctFirtoolFirtoolOptions options,
371 MlirStringRef directory) {
378 CirctFirtoolFirtoolOptions options) {
384 CirctFirtoolFirtoolOptions options,
385 MlirStringCallback callback,
void *userData) {
387 std::make_unique<mlir::detail::CallbackOstream>(callback, userData);
389 *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.