aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Brehler <marius.brehler@iml.fraunhofer.de>2024-02-20 14:16:34 +0100
committerGitHub <noreply@github.com>2024-02-20 14:16:34 +0100
commitdfb70c3a7c65cd5143c942ad8a18f4177c16d74e (patch)
tree7f991a2754ca715468ee6d478fba9003cf72f851
parentddba6b271c07b4bb640b2f2b742710557a762142 (diff)
downloadllvm-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.md1
-rw-r--r--mlir/lib/Target/Cpp/TranslateToCpp.cpp10
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>(