Loading [MathJax]/extensions/tex2jax.js
CIRCT 21.0.0git
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RtgTool.h
Go to the documentation of this file.
1//===-- circt-c/RtgTool.h - C API for the rtgtool -----------------*- C -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef CIRCT_C_RTGTOOL_H
10#define CIRCT_C_RTGTOOL_H
11
12#include "mlir-c/Pass.h"
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18//===----------------------------------------------------------------------===//
19// Tool Options API.
20//===----------------------------------------------------------------------===//
21
22#define DEFINE_C_API_STRUCT(name, storage) \
23 struct name { \
24 storage *ptr; \
25 }; \
26 typedef struct name name
27
28DEFINE_C_API_STRUCT(CirctRtgToolOptions, void);
29
30#undef DEFINE_C_API_STRUCT
31
32// NOLINTNEXTLINE(modernize-use-using)
38
39MLIR_CAPI_EXPORTED CirctRtgToolOptions
41MLIR_CAPI_EXPORTED void circtRtgToolOptionsDestroy(CirctRtgToolOptions options);
42
43MLIR_CAPI_EXPORTED void
44circtRtgToolOptionsSetOutputFormat(CirctRtgToolOptions options,
46
47MLIR_CAPI_EXPORTED void circtRtgToolOptionsSetSeed(CirctRtgToolOptions options,
48 unsigned seed);
49
50MLIR_CAPI_EXPORTED void
51circtRtgToolOptionsSetVerifyPasses(CirctRtgToolOptions options, bool enable);
52
53MLIR_CAPI_EXPORTED void
54circtRtgToolOptionsSetVerbosePassExecution(CirctRtgToolOptions options,
55 bool enable);
56
58 CirctRtgToolOptions options, unsigned numInstr,
59 const void **unsupportedInstructions);
60
62 CirctRtgToolOptions options, const char *unsupportedInstruction);
63
64MLIR_CAPI_EXPORTED void
66 const char *filename);
67
68MLIR_CAPI_EXPORTED void
69circtRtgToolOptionsSetSplitOutput(CirctRtgToolOptions options, bool enable);
70
71MLIR_CAPI_EXPORTED void
72circtRtgToolOptionsSetOutputPath(CirctRtgToolOptions options, const char *path);
73
74MLIR_CAPI_EXPORTED void
75circtRtgToolOptionsSetMemoriesAsImmediates(CirctRtgToolOptions options,
76 bool enable);
77
78//===----------------------------------------------------------------------===//
79// Pipeline Population API.
80//===----------------------------------------------------------------------===//
81
82MLIR_CAPI_EXPORTED void
83circtRtgToolRandomizerPipeline(MlirPassManager pm, CirctRtgToolOptions options);
84
85#ifdef __cplusplus
86}
87#endif
88
89#endif // CIRCT_C_RTGTOOL_H
MLIR_CAPI_EXPORTED void circtRtgToolOptionsAddUnsupportedInstruction(CirctRtgToolOptions options, const char *unsupportedInstruction)
Definition RtgTool.cpp:75
#define DEFINE_C_API_STRUCT(name, storage)
Definition RtgTool.h:22
CiretRtgToolOutputFormat
Definition RtgTool.h:33
@ CIRCT_RTGTOOL_OUTPUT_FORMAT_ASM
Definition RtgTool.h:36
@ CIRCT_RTGTOOL_OUTPUT_FORMAT_ELABORATED_MLIR
Definition RtgTool.h:35
@ CIRCT_RTGTOOL_OUTPUT_FORMAT_MLIR
Definition RtgTool.h:34
MLIR_CAPI_EXPORTED void circtRtgToolOptionsSetVerifyPasses(CirctRtgToolOptions options, bool enable)
Definition RtgTool.cpp:55
MLIR_CAPI_EXPORTED void circtRtgToolOptionsSetOutputFormat(CirctRtgToolOptions options, CirctRtgToolOutputFormat format)
Definition RtgTool.cpp:33
MLIR_CAPI_EXPORTED void circtRtgToolOptionsSetUnsupportedInstructionsFile(CirctRtgToolOptions options, const char *filename)
Definition RtgTool.cpp:81
MLIR_CAPI_EXPORTED void circtRtgToolOptionsSetOutputPath(CirctRtgToolOptions options, const char *path)
Definition RtgTool.cpp:91
MLIR_CAPI_EXPORTED void circtRtgToolOptionsSetSplitOutput(CirctRtgToolOptions options, bool enable)
Definition RtgTool.cpp:86
MLIR_CAPI_EXPORTED void circtRtgToolOptionsDestroy(CirctRtgToolOptions options)
Definition RtgTool.cpp:29
MLIR_CAPI_EXPORTED void circtRtgToolOptionsSetSeed(CirctRtgToolOptions options, unsigned seed)
Definition RtgTool.cpp:51
MLIR_CAPI_EXPORTED void circtRtgToolOptionsSetVerbosePassExecution(CirctRtgToolOptions options, bool enable)
Definition RtgTool.cpp:60
MLIR_CAPI_EXPORTED void circtRtgToolRandomizerPipeline(MlirPassManager pm, CirctRtgToolOptions options)
Definition RtgTool.cpp:105
MLIR_CAPI_EXPORTED CirctRtgToolOptions circtRtgToolOptionsCreateDefault(unsigned seed)
Definition RtgTool.cpp:24
MLIR_CAPI_EXPORTED void circtRtgToolOptionsSetUnsupportedInstructions(CirctRtgToolOptions options, unsigned numInstr, const void **unsupportedInstructions)
Definition RtgTool.cpp:65
enum CiretRtgToolOutputFormat CirctRtgToolOutputFormat
MLIR_CAPI_EXPORTED void circtRtgToolOptionsSetMemoriesAsImmediates(CirctRtgToolOptions options, bool enable)
Definition RtgTool.cpp:96