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