xref: /aosp_15_r20/external/armnn/src/backends/cl/ClRegistryInitializer.cpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker //
2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2017 Arm Ltd. All rights reserved.
3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT
4*89c4ff92SAndroid Build Coastguard Worker //
5*89c4ff92SAndroid Build Coastguard Worker 
6*89c4ff92SAndroid Build Coastguard Worker #include "ClBackend.hpp"
7*89c4ff92SAndroid Build Coastguard Worker 
8*89c4ff92SAndroid Build Coastguard Worker #include <armnn/BackendRegistry.hpp>
9*89c4ff92SAndroid Build Coastguard Worker 
10*89c4ff92SAndroid Build Coastguard Worker namespace
11*89c4ff92SAndroid Build Coastguard Worker {
12*89c4ff92SAndroid Build Coastguard Worker 
13*89c4ff92SAndroid Build Coastguard Worker using namespace armnn;
14*89c4ff92SAndroid Build Coastguard Worker 
15*89c4ff92SAndroid Build Coastguard Worker static BackendRegistry::StaticRegistryInitializer g_RegisterHelper
16*89c4ff92SAndroid Build Coastguard Worker {
17*89c4ff92SAndroid Build Coastguard Worker     BackendRegistryInstance(),
18*89c4ff92SAndroid Build Coastguard Worker     ClBackend::GetIdStatic(),
19*89c4ff92SAndroid Build Coastguard Worker     []()
__anonb877c52e0202() 20*89c4ff92SAndroid Build Coastguard Worker     {
21*89c4ff92SAndroid Build Coastguard Worker         // Check if we have a CustomMemoryAllocator associated with the backend
22*89c4ff92SAndroid Build Coastguard Worker         // and if so register it with the backend.
23*89c4ff92SAndroid Build Coastguard Worker         auto customAllocators = BackendRegistryInstance().GetAllocators();
24*89c4ff92SAndroid Build Coastguard Worker         auto allocatorIterator = customAllocators.find(ClBackend::GetIdStatic());
25*89c4ff92SAndroid Build Coastguard Worker         if (allocatorIterator != customAllocators.end())
26*89c4ff92SAndroid Build Coastguard Worker         {
27*89c4ff92SAndroid Build Coastguard Worker             return IBackendInternalUniquePtr(new ClBackend(allocatorIterator->second));
28*89c4ff92SAndroid Build Coastguard Worker         }
29*89c4ff92SAndroid Build Coastguard Worker         return IBackendInternalUniquePtr(new ClBackend);
30*89c4ff92SAndroid Build Coastguard Worker     }
31*89c4ff92SAndroid Build Coastguard Worker };
32*89c4ff92SAndroid Build Coastguard Worker 
33*89c4ff92SAndroid Build Coastguard Worker } // Anonymous namespace
34