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 Workerenum 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