blob: a2bf1a077f8dbdf51c937a46d8690ffcfb75b6fd [file] [log] [blame]
XNNPACK Teamb455b122019-09-27 18:10:33 -07001// 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
Zhi An Ng3deae1d2022-02-01 14:33:29 -080018#if XNN_PLATFORM_JIT
Zhi An Ngf9fc9ec2022-02-01 13:19:31 -080019static void xnn_release_jit_ukernel(struct xnn_ukernel ukernel)
20{
21 switch (ukernel.type) {
22 case xnn_ukernel_type_gemm:
23 xnn_release_code_memory(&ukernel.gemm.general_code_buffer);
24 xnn_release_code_memory(&ukernel.gemm.mr1_code_buffer);
25 break;
26 default:
27 break;
28 // Do nothing, only GEMMs have JIT kernels now.
29 }
30}
Zhi An Ng3deae1d2022-02-01 14:33:29 -080031#endif // XNN_PLATFORM_JIT
Zhi An Ngf9fc9ec2022-02-01 13:19:31 -080032
XNNPACK Teamb455b122019-09-27 18:10:33 -070033enum xnn_status xnn_delete_operator(xnn_operator_t op)
34{
Marat Dukhan854fb6b2020-06-19 12:33:44 -070035 if ((xnn_params.init_flags & XNN_INIT_FLAG_XNNPACK) == 0) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070036 xnn_log_error("failed to delete operator: XNNPACK is not initialized");
37 return xnn_status_uninitialized;
38 }
39
40 if (op == NULL) {
41 return xnn_status_invalid_parameter;
42 }
43
Marat Dukhan04f03be2019-11-19 12:36:47 -080044 xnn_release_memory(op->indirection_buffer);
45 xnn_release_simd_memory(op->packed_weights);
46 xnn_release_simd_memory(op->zero_buffer);
47 xnn_release_memory(op->pixelwise_buffer);
48 xnn_release_memory(op->subconvolution_buffer);
49 xnn_release_simd_memory(op->lookup_table);
Zhi An Ng3deae1d2022-02-01 14:33:29 -080050#if XNN_PLATFORM_JIT
Zhi An Ngf9fc9ec2022-02-01 13:19:31 -080051 xnn_release_jit_ukernel(op->ukernel);
Zhi An Ng3deae1d2022-02-01 14:33:29 -080052#endif // XNN_PLATFORM_JIT
Marat Dukhan04f03be2019-11-19 12:36:47 -080053 xnn_release_simd_memory(op);
XNNPACK Teamb455b122019-09-27 18:10:33 -070054 return xnn_status_success;
55}