diff options
author | Marius Brehler <marius.brehler@iml.fraunhofer.de> | 2024-02-20 14:16:34 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-20 14:16:34 +0100 |
commit | dfb70c3a7c65cd5143c942ad8a18f4177c16d74e (patch) | |
tree | 7f991a2754ca715468ee6d478fba9003cf72f851 | |
parent | ddba6b271c07b4bb640b2f2b742710557a762142 (diff) | |
download | llvm-dfb70c3a7c65cd5143c942ad8a18f4177c16d74e.zip llvm-dfb70c3a7c65cd5143c942ad8a18f4177c16d74e.tar.gz llvm-dfb70c3a7c65cd5143c942ad8a18f4177c16d74e.tar.bz2 |
[mlir][EmitC] Remove `func.constant` from emitter (#82342)
As part of the renaming the Standard dialect to Func dialect, *support*
for the `func.constant` operation was added to the emitter. However, the
emitter cannot emit function types. Hence the emission for a snippet
like
```
%0 = func.constant @myfn : (f32) -> f32
func.func private @myfn(%arg0: f32) -> f32 {
return %arg0 : f32
}
```
failes with `func.mlir:1:6: error: cannot emit type '(f32) -> f32'`.
This removes `func.constant` from the emitter.
-rw-r--r-- | mlir/docs/Dialects/emitc.md | 1 | ||||
-rw-r--r-- | mlir/lib/Target/Cpp/TranslateToCpp.cpp | 10 |
2 files changed, 1 insertions, 10 deletions
diff --git a/mlir/docs/Dialects/emitc.md b/mlir/docs/Dialects/emitc.md index 809a046..b227a8c 100644 --- a/mlir/docs/Dialects/emitc.md +++ b/mlir/docs/Dialects/emitc.md @@ -28,7 +28,6 @@ translating the following operations: * `cf.cond_br` * 'func' Dialect * `func.call` - * `func.constant` * `func.func` * `func.return` * 'arith' Dialect diff --git a/mlir/lib/Target/Cpp/TranslateToCpp.cpp b/mlir/lib/Target/Cpp/TranslateToCpp.cpp index e27fddc..2ba3dec 100644 --- a/mlir/lib/Target/Cpp/TranslateToCpp.cpp +++ b/mlir/lib/Target/Cpp/TranslateToCpp.cpp @@ -332,14 +332,6 @@ static LogicalResult printOperation(CppEmitter &emitter, } static LogicalResult printOperation(CppEmitter &emitter, - func::ConstantOp constantOp) { - Operation *operation = constantOp.getOperation(); - Attribute value = constantOp.getValueAttr(); - - return printConstantOp(emitter, operation, value); -} - -static LogicalResult printOperation(CppEmitter &emitter, emitc::AssignOp assignOp) { auto variableOp = cast<emitc::VariableOp>(assignOp.getVar().getDefiningOp()); OpResult result = variableOp->getResult(0); @@ -1296,7 +1288,7 @@ LogicalResult CppEmitter::emitOperation(Operation &op, bool trailingSemicolon) { emitc::SubOp, emitc::VariableOp, emitc::VerbatimOp>( [&](auto op) { return printOperation(*this, op); }) // Func ops. - .Case<func::CallOp, func::ConstantOp, func::FuncOp, func::ReturnOp>( + .Case<func::CallOp, func::FuncOp, func::ReturnOp>( [&](auto op) { return printOperation(*this, op); }) // Arithmetic ops. .Case<arith::ConstantOp>( |