This only exposes the ability to round-trip a textual pipeline at the moment. To exercise it, we also bind the libTransforms in a new Python extension. This does not include any interesting bindings, but it includes all the mechanism to add separate native extensions and load them dynamically. As such passes in libTransforms are only registered after `import mlir.transforms`. To support this global registration, the TableGen backend is also extended to bind to the C API the group registration for passes. Reviewed By: stellaraccident Differential Revision: https://reviews.llvm.org/D90819
25 lines
827 B
C++
25 lines
827 B
C++
//===- Transforms.cpp - Pybind module for the Transforms library ----------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "mlir-c/Transforms.h"
|
|
|
|
#include <pybind11/pybind11.h>
|
|
|
|
namespace py = pybind11;
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// Module initialization.
|
|
// -----------------------------------------------------------------------------
|
|
|
|
PYBIND11_MODULE(_mlirTransforms, m) {
|
|
m.doc() = "MLIR Transforms library";
|
|
|
|
// Register all the passes in the Transforms library on load.
|
|
mlirRegisterTransformsPasses();
|
|
}
|