diff --git a/lib/polygeist/Dialect.cpp b/lib/polygeist/Dialect.cpp index 692a3dfbc87b..5ea68fe59e62 100644 --- a/lib/polygeist/Dialect.cpp +++ b/lib/polygeist/Dialect.cpp @@ -9,6 +9,7 @@ #include "polygeist/Dialect.h" #include "mlir/IR/DialectImplementation.h" #include "polygeist/Ops.h" +#include "mlir/Transforms/InliningUtils.h" using namespace mlir; using namespace mlir::polygeist; @@ -17,11 +18,25 @@ using namespace mlir::polygeist; // Polygeist dialect. //===----------------------------------------------------------------------===// +namespace { +/// This class defines the interface for handling inlining for Polygeist +/// dialect operations. +struct PolygeistInlinerInterface : public DialectInlinerInterface { + using DialectInlinerInterface::DialectInlinerInterface; + + /// All Polygeist dialect ops can be inlined. + bool isLegalToInline(Operation *, Region *, bool, IRMapping &) const final { + return true; + } +}; +} // namespace + void PolygeistDialect::initialize() { addOperations< #define GET_OP_LIST #include "polygeist/PolygeistOps.cpp.inc" >(); + addInterfaces(); } #include "polygeist/PolygeistOpsDialect.cpp.inc" diff --git a/tools/cgeist/driver.cc b/tools/cgeist/driver.cc index b49eecdcfec5..5d63bae70bc8 100644 --- a/tools/cgeist/driver.cc +++ b/tools/cgeist/driver.cc @@ -612,7 +612,7 @@ int main(int argc, char **argv) { OpPrintingFlags flags; if (PrintDebugInfo) - flags.enableDebugInfo(/*pretty*/ false); + flags.enableDebugInfo(/*enable*/ true, /*pretty*/ false); if (ImmediateMLIR) { module->print(llvm::outs(), flags);