36 lines
1.7 KiB
C++
36 lines
1.7 KiB
C++
/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|
|
|* *|
|
|
|* Dialect Declarations *|
|
|
|* *|
|
|
|* Automatically generated file, do not edit! *|
|
|
|* From: SCFOps.td *|
|
|
|* *|
|
|
\*===----------------------------------------------------------------------===*/
|
|
|
|
namespace mlir::scf {
|
|
|
|
/// The `scf` (structured control flow) dialect contains operations that
|
|
/// represent control flow constructs such as `if` and `for`. Being
|
|
/// _structured_ means that the control flow has a structure unlike, for
|
|
/// example, `goto`s or `assert`s. Unstructured control flow operations are
|
|
/// located in the `cf` (control flow) dialect.
|
|
///
|
|
/// Originally, this dialect was developed as a common lowering stage for the
|
|
/// `affine` and `linalg` dialects. Both convert to SCF loops instead of
|
|
/// targeting branch-based CFGs directly. Typically, `scf` is lowered to `cf`
|
|
/// and then lowered to some final target like LLVM or SPIR-V.
|
|
class SCFDialect : public ::mlir::Dialect {
|
|
explicit SCFDialect(::mlir::MLIRContext *context);
|
|
|
|
void initialize();
|
|
friend class ::mlir::MLIRContext;
|
|
public:
|
|
~SCFDialect() override;
|
|
static constexpr ::llvm::StringLiteral getDialectNamespace() {
|
|
return ::llvm::StringLiteral("scf");
|
|
}
|
|
};
|
|
|
|
} // namespace mlir::scf
|
|
MLIR_DECLARE_EXPLICIT_TYPE_ID(::mlir::scf::SCFDialect)
|