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/arm_compute/graph/IGraphMutator.h b/arm_compute/graph/IGraphMutator.h
index b80d37d..94a28f6 100644
--- a/arm_compute/graph/IGraphMutator.h
+++ b/arm_compute/graph/IGraphMutator.h
@@ -35,6 +35,14 @@
 class IGraphMutator
 {
 public:
+    /** Mutation type */
+    enum class MutationType
+    {
+        IR,     /** IR specific mutation */
+        Backend /** Backend specific mutation */
+    };
+
+public:
     /** Virtual Destructor */
     virtual ~IGraphMutator() = default;
     /** Walk the graph and perform a specific mutation
@@ -42,6 +50,11 @@
      * @param[in, out] g Graph to walk and mutate
      */
     virtual void mutate(Graph &g) = 0;
+    /** Returns mutation type
+     *
+     * @return Mutation type enumeration
+     */
+    virtual MutationType type() const = 0;
     /** Returns mutator name
      *
      * @return Mutator name