@class NSString, NSArray, NSURL, NSDictionary, MPSGraph, NSObject, MPSGraphCompilationDescriptor, NSFileManager; @protocol OS_dispatch_queue; @interface MPSGraphExecutable : MPSGraphObject { MPSGraph *_graph; struct shared_ptr<mlir::MLIRContext> { struct MLIRContext *__ptr_; struct __shared_weak_count *__cntrl_; } _executableContext; void *_builder; struct LazyLoadableModuleRef { struct shared_ptr<mlir::MLIRContext> { struct MLIRContext *__ptr_; struct __shared_weak_count *__cntrl_; } _ctx; struct OwningOpRef<mlir::ModuleOp> { struct ModuleOp { struct Operation *state; } op; } _originalModule; NSURL *_moduleURL; } _originalModule; void *_symbolTable; MPSGraphCompilationDescriptor *_originalCompilationDescriptor; struct unordered_map<std::string, std::unique_ptr<RuntimeCacheEntry>, std::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<const std::string, std::unique_ptr<RuntimeCacheEntry>>>> { struct __hash_table<std::__hash_value_type<std::string, std::unique_ptr<RuntimeCacheEntry>>, std::__unordered_map_hasher<std::string, std::__hash_value_type<std::string, std::unique_ptr<RuntimeCacheEntry>>, std::hash<std::string>, std::equal_to<std::string>>, std::__unordered_map_equal<std::string, std::__hash_value_type<std::string, std::unique_ptr<RuntimeCacheEntry>>, std::equal_to<std::string>, std::hash<std::string>>, std::allocator<std::__hash_value_type<std::string, std::unique_ptr<RuntimeCacheEntry>>>> { struct unique_ptr<std::__hash_node_base<std::__hash_node<std::__hash_value_type<std::string, std::unique_ptr<RuntimeCacheEntry>>, void *> *> *[], std::__bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<std::string, std::unique_ptr<RuntimeCacheEntry>>, void *> *> *>>> { struct __compressed_pair<std::__hash_node_base<std::__hash_node<std::__hash_value_type<std::string, std::unique_ptr<RuntimeCacheEntry>>, void *> *> **, std::__bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<std::string, std::unique_ptr<RuntimeCacheEntry>>, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<std::string, std::unique_ptr<RuntimeCacheEntry>>, void *> *> *>> { struct __compressed_pair<unsigned long, std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<std::string, std::unique_ptr<RuntimeCacheEntry>>, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair<std::__hash_node_base<std::__hash_node<std::__hash_value_type<std::string, std::unique_ptr<RuntimeCacheEntry>>, void *> *>, std::allocator<std::__hash_node<std::__hash_value_type<std::string, std::unique_ptr<RuntimeCacheEntry>>, void *>>> { struct __hash_node_base<std::__hash_node<std::__hash_value_type<std::string, std::unique_ptr<RuntimeCacheEntry>>, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair<unsigned long, std::__unordered_map_hasher<std::string, std::__hash_value_type<std::string, std::unique_ptr<RuntimeCacheEntry>>, std::hash<std::string>, std::equal_to<std::string>>> { unsigned long long __value_; } __p2_; struct __compressed_pair<float, std::__unordered_map_equal<std::string, std::__hash_value_type<std::string, std::unique_ptr<RuntimeCacheEntry>>, std::equal_to<std::string>, std::hash<std::string>>> { float __value_; } __p3_; } __table_; } _newRuntimeCache; struct unordered_map<std::string, LazyLoadableModuleRef, std::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<const std::string, LazyLoadableModuleRef>>> { struct __hash_table<std::__hash_value_type<std::string, LazyLoadableModuleRef>, std::__unordered_map_hasher<std::string, std::__hash_value_type<std::string, LazyLoadableModuleRef>, std::hash<std::string>, std::equal_to<std::string>>, std::__unordered_map_equal<std::string, std::__hash_value_type<std::string, LazyLoadableModuleRef>, std::equal_to<std::string>, std::hash<std::string>>, std::allocator<std::__hash_value_type<std::string, LazyLoadableModuleRef>>> { struct unique_ptr<std::__hash_node_base<std::__hash_node<std::__hash_value_type<std::string, LazyLoadableModuleRef>, void *> *> *[], std::__bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<std::string, LazyLoadableModuleRef>, void *> *> *>>> { struct __compressed_pair<std::__hash_node_base<std::__hash_node<std::__hash_value_type<std::string, LazyLoadableModuleRef>, void *> *> **, std::__bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<std::string, LazyLoadableModuleRef>, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<std::string, LazyLoadableModuleRef>, void *> *> *>> { struct __compressed_pair<unsigned long, std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<std::string, LazyLoadableModuleRef>, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair<std::__hash_node_base<std::__hash_node<std::__hash_value_type<std::string, LazyLoadableModuleRef>, void *> *>, std::allocator<std::__hash_node<std::__hash_value_type<std::string, LazyLoadableModuleRef>, void *>>> { struct __hash_node_base<std::__hash_node<std::__hash_value_type<std::string, LazyLoadableModuleRef>, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair<unsigned long, std::__unordered_map_hasher<std::string, std::__hash_value_type<std::string, LazyLoadableModuleRef>, std::hash<std::string>, std::equal_to<std::string>>> { unsigned long long __value_; } __p2_; struct __compressed_pair<float, std::__unordered_map_equal<std::string, std::__hash_value_type<std::string, LazyLoadableModuleRef>, std::equal_to<std::string>, std::hash<std::string>>> { float __value_; } __p3_; } __table_; } _optimizedModuleCache; struct unordered_map<std::string, LazyLoadableModuleRef, std::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<const std::string, LazyLoadableModuleRef>>> { struct __hash_table<std::__hash_value_type<std::string, LazyLoadableModuleRef>, std::__unordered_map_hasher<std::string, std::__hash_value_type<std::string, LazyLoadableModuleRef>, std::hash<std::string>, std::equal_to<std::string>>, std::__unordered_map_equal<std::string, std::__hash_value_type<std::string, LazyLoadableModuleRef>, std::equal_to<std::string>, std::hash<std::string>>, std::allocator<std::__hash_value_type<std::string, LazyLoadableModuleRef>>> { struct unique_ptr<std::__hash_node_base<std::__hash_node<std::__hash_value_type<std::string, LazyLoadableModuleRef>, void *> *> *[], std::__bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<std::string, LazyLoadableModuleRef>, void *> *> *>>> { struct __compressed_pair<std::__hash_node_base<std::__hash_node<std::__hash_value_type<std::string, LazyLoadableModuleRef>, void *> *> **, std::__bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<std::string, LazyLoadableModuleRef>, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<std::string, LazyLoadableModuleRef>, void *> *> *>> { struct __compressed_pair<unsigned long, std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<std::string, LazyLoadableModuleRef>, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair<std::__hash_node_base<std::__hash_node<std::__hash_value_type<std::string, LazyLoadableModuleRef>, void *> *>, std::allocator<std::__hash_node<std::__hash_value_type<std::string, LazyLoadableModuleRef>, void *>>> { struct __hash_node_base<std::__hash_node<std::__hash_value_type<std::string, LazyLoadableModuleRef>, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair<unsigned long, std::__unordered_map_hasher<std::string, std::__hash_value_type<std::string, LazyLoadableModuleRef>, std::hash<std::string>, std::equal_to<std::string>>> { unsigned long long __value_; } __p2_; struct __compressed_pair<float, std::__unordered_map_equal<std::string, std::__hash_value_type<std::string, LazyLoadableModuleRef>, std::equal_to<std::string>, std::hash<std::string>>> { float __value_; } __p3_; } __table_; } _optimizedNoDeviceModuleCache; struct recursive_mutex { struct _opaque_pthread_mutex_t { long long __sig; char __opaque[56]; } __m_; } _executableMutex; struct recursive_mutex { struct _opaque_pthread_mutex_t { long long __sig; char __opaque[56]; } __m_; } _originalModuleMutex; NSObject<OS_dispatch_queue> *_specializationDispatchQueue; struct mutex { struct _opaque_pthread_mutex_t { long long __sig; char __opaque[56]; } __m_; } _specializationsPendingMutex; struct condition_variable { struct _opaque_pthread_cond_t { long long __sig; char __opaque[40]; } __cv_; } _specializationsPendingCV; struct atomic<int> { struct __cxx_atomic_impl<int, std::__cxx_atomic_base_impl<int>> { _Atomic int __a_value; } __a_; } _specializationsPending; struct atomic<bool> { struct __cxx_atomic_impl<bool, std::__cxx_atomic_base_impl<bool>> { _Atomic BOOL __a_value; } __a_; } _originalModuleIsOptimized; NSArray *_targetOperations; NSDictionary *_feeds; unsigned long long _modelUID; NSString *_modelTime; unsigned long long _compilationID; unsigned long long _evDumpModuleFlag; unsigned long long _sharedEventSignalValue; NSString *_evDumpModulePath; NSString *_modelFileArchivePath; NSString *_dumpCompiledProductsPath; NSFileManager *_fileManager; BOOL _enableCommitAndContinue; BOOL _enableProfilingOpNames; BOOL _briefProfilingOpNames; BOOL _runPlacementPass; BOOL _useCostModel; BOOL _oldCostModelPass; BOOL _printCostModel; BOOL _generateRuntimeExecutionReport; BOOL _legacyANEQuantization; BOOL _keepANECUnitNameAttrs; BOOL _enableGPUQuantizationOps; long long _forcePlacementOnDevice; } @property unsigned long long options; @property (readonly) NSArray *feedTensors; @property (readonly) NSArray *targetTensors; + (id)executablesWithMLIRSourceForMultipleModules:(id)a0 executableDescriptor:(id)a1 regionNames:(id)a2; + (unsigned long long)getValidateNetworkSupportedVersion; + (struct __CFDictionary { } *)validateNetworkWithParams:(struct __CFDictionary { } *)a0 apiVersion:(unsigned long long)a1; - (void)dump; - (void)dealloc; - (id).cxx_construct; - (void).cxx_destruct; - (id)debugDescription; - (void)commonPostInit:(void *)a0; - (id)getOutputShapes; - (id)runInternalWithDevice:(id)a0 commandBuffer:(id)a1 feedsDictionary:(id)a2 resultsDictionary:(id)a3 executableExecutionDescriptor:(id)a4 mpsGraphOwnedCommandBuffer:(BOOL)a5; - (id)allocateTensorDataTargetsForDevice:(id)a0 inputsArray:(id)a1; - (void)aneRegionOpsHashSet:(void *)a0; - (struct OwningOpRef<mlir::ModuleOp> { struct ModuleOp { struct Operation *x0; } x0; })cloneForFeeds:(id)a0 targetTensors:(id)a1 targetOperations:(id)a2; - (void)commonPreInitWithDescriptor:(id)a0; - (struct vector<mlir::Type, std::allocator<mlir::Type>> { struct Type *x0; struct Type *x1; struct __compressed_pair<mlir::Type *, std::allocator<mlir::Type>> { struct Type *x0; } x2; })convertMPSGraphShapesToMLIRTypes:(id)a0; - (struct vector<mlir::Type, std::allocator<mlir::Type>> { struct Type *x0; struct Type *x1; struct __compressed_pair<mlir::Type *, std::allocator<mlir::Type>> { struct Type *x0; } x2; })convertMPSGraphShapesToMLIRTypes:(id)a0 funcOp:(struct FuncOp { struct Operation *x0; })a1 compilationDescriptor:(id)a2; - (id)createMLIRLibraryWithMPSGraphPackage:(id)a0 packageKey:(id)a1 appendOptimizedModules:(BOOL)a2; - (void)dumpCompiledProducts; - (id)emitObjCToURL:(id)a0 test:(BOOL)a1; - (void)emitObjUnitTestToUrl:(id)a0; - (id)encodeToCommandBuffer:(id)a0 inputsArray:(id)a1 resultsArray:(id)a2 executionDescriptor:(id)a3; - (id)encodeWithMPSCommandBuffer:(id)a0 inputsArray:(id)a1 resultsArray:(id)a2 executionDescriptor:(id)a3; - (void)fileBackModule:(const void *)a0 withPath:(id)a1; - (id)getIR; - (id)getInputShapes; - (void *)getNewRuntimeForDevice:(id)a0 module:(struct ModuleOp { struct Operation *x0; })a1 inputShapes:(id)a2 compilationDescriptor:(id)a3 fallingBack:(BOOL)a4; - (void *)getNewRuntimeForDevice:(id)a0 module:(struct ModuleOp { struct Operation *x0; })a1 inputsArray:(id)a2 compilationDescriptor:(id)a3; - (id)getOperationsToVisitForOperation:(id)a0 visitedOperations:(id)a1; - (unsigned long long)getOptimizedModuleCacheSize; - (unsigned long long)getOptimizedNoDeviceModuleCacheSize; - (id)getOutputTypesWithDevice:(id)a0 inputTypes:(id)a1 compilationDescriptor:(id)a2; - (id)getTargetShapesForDevice:(id)a0 inputsArray:(id)a1; - (id)getTensorDataArraysWithDevice:(id)a0 feedsDictionary:(id)a1 resultsDictionary:(id)a2 inputsArray:(id)a3 resultsArray:(id)a4; - (id)initWithCoreMLPackage:(id)a0 executableDescriptor:(id)a1; - (id)initWithGraph:(id)a0 device:(id)a1 feeds:(id)a2 targetTensors:(id)a3 targetOperations:(id)a4 executableDescriptor:(id)a5; - (id)initWithMILProgram:(void *)a0 executableDescriptor:(id)a1; - (id)initWithMILProgramWithURL:(id)a0 executableDescriptor:(id)a1; - (id)initWithMLIRBytecode:(id)a0 executableDescriptor:(id)a1; - (id)initWithMLIRCommon:(struct unique_ptr<llvm::MemoryBuffer, std::default_delete<llvm::MemoryBuffer>> { struct __compressed_pair<llvm::MemoryBuffer *, std::default_delete<llvm::MemoryBuffer>> { struct MemoryBuffer *x0; } x0; })a0 executableDescriptor:(id)a1; - (id)initWithMLIRModule:(struct ModuleOp { struct Operation *x0; })a0 executableDescriptor:(id)a1; - (id)initWithMLIRSource:(id)a0 executableDescriptor:(id)a1; - (id)initWithMLIRSourceFromURL:(id)a0 executableDescriptor:(id)a1; - (id)initWithMPSGraphPackageAtURL:(id)a0 compilationDescriptor:(id)a1; - (void)initializeMLIR; - (id)initializeWithMLIRModule:(struct ModuleOp { struct Operation *x0; })a0 executableDescriptor:(id)a1; - (BOOL)isExecutableForFeeds:(id)a0 targetTensors:(id)a1 targetOperations:(id)a2 compilationDescriptor:(id)a3; - (id)lazyInitWithModuleURL:(id)a0 executableDescriptor:(id)a1; - (struct OwningOpRef<mlir::ModuleOp> { struct ModuleOp { struct Operation *x0; } x0; })optimizationPassesWithDevice:(id)a0 sourceModule:(void *)a1 compilationID:(unsigned long long)a2 compilationDescriptor:(id)a3; - (void)optimizeOriginalModuleWithCompilationDescriptor:(id)a0; - (id)runAsyncWithCommandQueue:(id)a0 inputsArray:(id)a1 resultsArray:(id)a2 executionDescriptor:(id)a3; - (id)runAsyncWithDevice:(id)a0 inputsArray:(id)a1 resultsArray:(id)a2 executionDescriptor:(id)a3; - (id)runAsyncWithMTLCommandQueue:(id)a0 inputsArray:(id)a1 resultsArray:(id)a2 executionDescriptor:(id)a3; - (id)runInternalWithDevice:(id)a0 commandBuffer:(id)a1 feeds:(id)a2 results:(id)a3 executableExecutionDescriptor:(id)a4 mpsGraphOwnedCommandBuffer:(BOOL)a5; - (id)runWithDevice:(id)a0 inputsArray:(id)a1 resultsArray:(id)a2 executionDescriptor:(id)a3; - (id)runWithMTLCommandQueue:(id)a0 inputsArray:(id)a1 resultsArray:(id)a2; - (id)runWithMTLCommandQueue:(id)a0 inputsArray:(id)a1 resultsArray:(id)a2 executionDescriptor:(id)a3; - (void)sanitizeExternalModuleWithVariableFetchHandler:(id /* block */)a0; - (void)serializeToMPSGraphPackageAtURL:(id)a0 descriptor:(id)a1; - (void)specializeForMultipleInputTypesWithDevice:(id)a0 multipleInputTypes:(id)a1 compilationDescriptor:(id)a2; - (void)specializeWithDevice:(id)a0 inputShapes:(id)a1 compilationDescriptor:(id)a2; - (void)specializeWithDevice:(id)a0 inputTypes:(id)a1 compilationDescriptor:(id)a2; - (struct ModuleOp { struct Operation *x0; })specializeWithDevice:(id)a0 inputsArray:(id)a1 compilationDescriptor:(id)a2; - (struct ModuleOp { struct Operation *x0; })specializedModuleWithDevice:(id)a0 inputShapes:(id)a1 compilationDescriptor:(id)a2 fallingBack:(BOOL)a3; @end