diff --git a/ethosu/regor/compiler/tflite_graph_optimiser.cpp b/ethosu/regor/compiler/tflite_graph_optimiser.cpp index eec46ff18948d1e34dadb49ad2536d9b16a9c3a2..8629741c653c0f5b581c42bcd70cd25b07223ed9 100644 --- a/ethosu/regor/compiler/tflite_graph_optimiser.cpp +++ b/ethosu/regor/compiler/tflite_graph_optimiser.cpp @@ -825,7 +825,7 @@ Operation *TFLiteGraphOptimiser::RemoveReshape(Graph *const graph, Operation *co std::find_if(ifm->Writers().begin(), ifm->Writers().end(), isPassthroughOp) != ifm->Writers().end(); // Inserts a copy op if needed before removing reshapes. - if ( ((isIfmSgIfm || isIfmSgOfm || isIfmConst) && (isOfmSgOfm)) || (isIfmCpuOfm && isOfmCpuIfm) ) + if ( ((isIfmSgIfm || isIfmSgOfm || isIfmConst || isIfmCpuOfm) && (isOfmSgOfm || isOfmCpuIfm)) ) { auto copyOp = InsertCopyOpAfterTensor(ifmConn->tensor, ifmConn->quantization); copyOp->Output(TensorUsage::OFM)->Set(RoundMode::NATURAL); diff --git a/ethosu/regor/compiler/tflite_graph_optimiser.hpp b/ethosu/regor/compiler/tflite_graph_optimiser.hpp index 77b3ef7e0cd06c43116f8ae5ad062a33345aa143..c5b8b4733df2fbd93a1b765b90f979d8edd86b6c 100644 --- a/ethosu/regor/compiler/tflite_graph_optimiser.hpp +++ b/ethosu/regor/compiler/tflite_graph_optimiser.hpp @@ -200,8 +200,6 @@ public: { {}, { - // prerequisite to pattern-matching - &TFLiteGraphOptimiser::RemoveReshape, // pattern-matching functions // (must run before supported-operator checks) // Every pattern-matching function is responsible of calling @@ -239,6 +237,12 @@ public: &TFLiteGraphOptimiser::RewriteFullyConnectDynamic } }, + { + {}, + { + &TFLiteGraphOptimiser::RemoveReshape, + } + }, { {}, {