| 72 | } |
| 73 | |
| 74 | PassManager create_default_pass_manager(Target target, const GraphConfig &cfg) |
| 75 | { |
| 76 | ARM_COMPUTE_UNUSED(target); |
| 77 | PassManager pm; |
| 78 | |
| 79 | // Passes that mutate graph IR |
| 80 | if (cfg.use_synthetic_type) |
| 81 | { |
| 82 | switch (cfg.synthetic_type) |
| 83 | { |
| 84 | case DataType::QASYMM8: |
| 85 | case DataType::QASYMM8_SIGNED: |
| 86 | { |
| 87 | pm.append(std::make_unique<SyntheticDataTypeMutator>(cfg.synthetic_type)); |
| 88 | break; |
| 89 | } |
| 90 | default: |
| 91 | { |
| 92 | ARM_COMPUTE_ERROR("Unsupported DataType for SyntheticDataTypeMutator"); |
| 93 | break; |
| 94 | } |
| 95 | } |
| 96 | } |
| 97 | pm.append(std::make_unique<NodeFusionMutator>()); |
| 98 | pm.append(std::make_unique<GroupedConvolutionMutator>()); |
| 99 | pm.append(std::make_unique<InPlaceOperationMutator>()); |
| 100 | |
| 101 | // Passes that mutate backend information |
| 102 | pm.append(std::make_unique<DepthConcatSubTensorMutator>()); |
| 103 | pm.append(std::make_unique<SplitLayerSubTensorMutator>()); |
| 104 | pm.append(std::make_unique<NodeExecutionMethodMutator>()); |
| 105 | |
| 106 | return pm; |
| 107 | } |
| 108 | |
| 109 | void release_default_graph_context(GraphContext &ctx) |
| 110 | { |