Concat elimination in codegen: check output tensor is parent of inputs and do nothing if true
Signed-off-by: Hyeongseok Oh <hseok82.oh@samsung.com>
auto tensors = _tensor_builder;
return [tensors, param](IExecutionBuilder &builder) {
+ // If tensor allocator allocate as subtensor
+ bool canEliminate = true;
+ for (auto ifm_ind : param.input_indexes)
+ {
+ if (!tensors->isSubTensorOf(param.output_index, ifm_ind))
+ {
+ canEliminate = false;
+ break;
+ }
+ }
+ if (canEliminate)
+ {
+ // If concat eliminated, return with nothing to do
+ return;
+ }
+
auto output_alloc = tensors->at(param.output_index).get();
std::vector<::arm_compute::ICLTensor *> input_allocs;