11 #include "mlir/CAPI/IR.h"
12 #include "mlir/CAPI/Pass.h"
13 #include "mlir/CAPI/Support.h"
14 #include "mlir/CAPI/Utils.h"
15 #include "llvm/Support/CommandLine.h"
16 #include "llvm/Support/raw_ostream.h"
18 using namespace circt;
37 MlirStringRef filename) {
42 CirctFirtoolFirtoolOptions options,
bool disable) {
43 unwrap(options)->setDisableUnknownAnnotations(disable);
47 CirctFirtoolFirtoolOptions options,
bool value) {
48 unwrap(options)->setDisableAnnotationsClassless(value);
52 CirctFirtoolFirtoolOptions options,
bool value) {
53 unwrap(options)->setLowerAnnotationsNoRefTypePorts(value);
57 CirctFirtoolFirtoolOptions options,
63 converted = firrtl::PreserveAggregate::PreserveMode::None;
76 unwrap(options)->setPreserveAggregate(converted);
88 converted = firrtl::PreserveValues::PreserveMode::None;
98 unwrap(options)->setPreserveValues(converted);
103 unwrap(options)->setEnableDebugInfo(value);
112 converted = firtool::FirtoolOptions::BuildMode::BuildModeDefault;
115 converted = firtool::FirtoolOptions::BuildMode::BuildModeDebug;
118 converted = firtool::FirtoolOptions::BuildMode::BuildModeRelease;
122 unwrap(options)->setBuildMode(converted);
126 CirctFirtoolFirtoolOptions options,
bool value) {
127 unwrap(options)->setDisableOptimization(value);
131 CirctFirtoolFirtoolOptions options,
bool value) {
132 unwrap(options)->setExportChiselInterface(value);
136 CirctFirtoolFirtoolOptions options, MlirStringRef value) {
137 unwrap(options)->setChiselInterfaceOutDirectory(
unwrap(value));
142 unwrap(options)->setVbToBV(value);
147 unwrap(options)->setNoDedup(value);
166 unwrap(options)->setCompanionMode(converted);
170 CirctFirtoolFirtoolOptions options,
bool value) {
171 unwrap(options)->setDisableAggressiveMergeConnections(value);
175 CirctFirtoolFirtoolOptions options,
bool value) {
176 unwrap(options)->setDisableHoistingHWPassthrough(value);
181 unwrap(options)->setEmitOMIR(value);
185 MlirStringRef value) {
191 unwrap(options)->setLowerMemories(value);
195 MlirStringRef value) {
201 unwrap(options)->setReplSeqMem(value);
205 MlirStringRef value) {
211 unwrap(options)->setExtractTestCode(value);
215 CirctFirtoolFirtoolOptions options,
bool value) {
216 unwrap(options)->setIgnoreReadEnableMem(value);
238 unwrap(options)->setDisableRandom(converted);
242 CirctFirtoolFirtoolOptions options, MlirStringRef value) {
243 unwrap(options)->setOutputAnnotationFilename(
unwrap(value));
247 CirctFirtoolFirtoolOptions options,
bool value) {
248 unwrap(options)->setEnableAnnotationWarning(value);
253 unwrap(options)->setAddMuxPragmas(value);
258 unwrap(options)->setVerificationFlavor(value);
262 CirctFirtoolFirtoolOptions options,
bool value) {
263 unwrap(options)->setEmitSeparateAlwaysBlocks(value);
267 CirctFirtoolFirtoolOptions options,
bool value) {
268 unwrap(options)->setEtcDisableInstanceExtraction(value);
272 CirctFirtoolFirtoolOptions options,
bool value) {
273 unwrap(options)->setEtcDisableRegisterExtraction(value);
277 CirctFirtoolFirtoolOptions options,
bool value) {
278 unwrap(options)->setEtcDisableModuleInlining(value);
282 CirctFirtoolFirtoolOptions options,
bool value) {
283 unwrap(options)->setAddVivadoRAMAddressConflictSynthesisBugWorkaround(value);
287 MlirStringRef value) {
292 MlirStringRef value) {
297 MlirStringRef value) {
302 MlirStringRef value) {
307 MlirStringRef value) {
312 CirctFirtoolFirtoolOptions options,
bool value) {
313 unwrap(options)->setExportModuleHierarchy(value);
318 unwrap(options)->setStripFirDebugInfo(value);
323 unwrap(options)->setStripDebugInfo(value);
332 CirctFirtoolFirtoolOptions options) {
339 CirctFirtoolFirtoolOptions options,
340 MlirStringRef inputFilename) {
347 CirctFirtoolFirtoolOptions options) {
353 CirctFirtoolFirtoolOptions options) {
359 CirctFirtoolFirtoolOptions options,
360 MlirStringCallback callback,
void *userData) {
362 std::make_unique<mlir::detail::CallbackOstream>(callback, userData);
369 CirctFirtoolFirtoolOptions options,
370 MlirStringRef directory) {
377 CirctFirtoolFirtoolOptions options) {
return wrap(CMemoryType::get(unwrap(ctx), baseType, numElements))
static EvaluatorValuePtr unwrap(OMEvaluatorValue c)
@ All
Preserve all aggregate values.
@ OneDimVec
Preserve only 1d vectors of ground type (e.g. UInt<2>[3]).
@ Vec
Preserve only vectors (e.g. UInt<2>[3][3]).
@ Strip
Strip all names. No name on declaration is preserved.
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.