1// Copyright (c) Facebook, Inc. and its affiliates.
2// All rights reserved.
3//
4// Copyright 2019 Google LLC
5//
6// This source code is licensed under the BSD-style license found in the
7// LICENSE file in the root directory of this source tree.
8
9#include <stdlib.h>
10
11#include <xnnpack.h>
12#include <xnnpack/allocator.h>
13#include <xnnpack/log.h>
14#include <xnnpack/operator.h>
15#include <xnnpack/params.h>
16
17
18enum xnn_status xnn_delete_operator(xnn_operator_t op)
19{
20 if ((xnn_params.init_flags & XNN_INIT_FLAG_XNNPACK) == 0) {
21 xnn_log_error("failed to delete operator: XNNPACK is not initialized");
22 return xnn_status_uninitialized;
23 }
24
25 if (op == NULL) {
26 return xnn_status_invalid_parameter;
27 }
28
29 xnn_release_memory(op->indirection_buffer);
30 if (op->weights_cache == NULL) {
31 xnn_release_simd_memory(op->packed_weights.pointer);
32 }
33 if (op->num_post_operation_params != 0) {
34 xnn_release_memory(op->post_operation_params);
35 }
36 xnn_release_simd_memory(op->zero_buffer);
37 xnn_release_memory(op->pixelwise_buffer);
38 xnn_release_memory(op->subconvolution_buffer);
39 xnn_release_simd_memory(op->lookup_table);
40 xnn_release_simd_memory(op);
41 return xnn_status_success;
42}
43