COMPMID-2779: Add support for generating synthetic int8 graphs.

Adds SyntheticDataTypeMutator, which is responsible for mutating graphs
to int8 and thus enable performance analysis on a wider range of models.

Change-Id: I9a00f0ae59421ab11952660f5115b5dcd9314aaf
Signed-off-by: Georgios Pinitas <georgios.pinitas@arm.com>
Reviewed-on: https://review.mlplatform.org/c/2418
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
diff --git a/src/graph/GraphManager.cpp b/src/graph/GraphManager.cpp
index 4f942b9..996e50b 100644
--- a/src/graph/GraphManager.cpp
+++ b/src/graph/GraphManager.cpp
@@ -51,6 +51,9 @@
         ARM_COMPUTE_ERROR("Graph is already registered!");
     }
 
+    // Apply IR mutating passes
+    pm.run_type(graph, IGraphMutator::MutationType::IR);
+
     // Force target to all graph construct
     // TODO (COMPMID-2014) : Support heterogeneous execution
     Target forced_target = target;
@@ -68,8 +71,8 @@
     // Configure all tensors
     detail::configure_all_tensors(graph);
 
-    // Apply all mutating passes
-    pm.run_all(graph);
+    // Apply backend mutating passes
+    pm.run_type(graph, IGraphMutator::MutationType::Backend);
 
     // Perform topological sort
     std::vector<NodeID> topological_sorted_nodes = dfs(graph);