aboutsummaryrefslogtreecommitdiff
path: root/reference_model/src/subgraph_traverser.h
diff options
context:
space:
mode:
authorKevin Cheng <kevin.cheng@arm.com>2021-06-29 15:32:19 -0700
committerKevin Cheng <kevin.cheng@arm.com>2021-08-20 18:07:06 +0100
commitacb550f4410ae861e53cae27a9feb4b11d45769f (patch)
treeae2f4ec558c2cdf1afa020b80a09d7ab4be5ef6d /reference_model/src/subgraph_traverser.h
parent68e7aee65bda5ac03fa7def753b7dc7462554793 (diff)
downloadreference_model-acb550f4410ae861e53cae27a9feb4b11d45769f.tar.gz
Replace node level check ASSERT_MSG_NODE()/FATAL_ERROR_NODE() with REQUIRE() or ERROR_IF()
- Adding return code enum class: {VALID, UNPREDICTABLE, ERROR} - Runtime errors (e.g. memory allocation failure) will abort immediately, or will return one of the three return codes Part of the codes are re-written to pass REQUIRE() to the top-level (e.g. apply_scale_32/16()) - Update setExpectedFailure() to setExpectedReturnCode() on test generation script - Update test regression script to interface with reference model change Signed-off-by: Kevin Cheng <kevin.cheng@arm.com> Change-Id: Ia063c936bcb2a54d6e379a5bb6801aa72d1186f1
Diffstat (limited to 'reference_model/src/subgraph_traverser.h')
-rw-r--r--reference_model/src/subgraph_traverser.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/reference_model/src/subgraph_traverser.h b/reference_model/src/subgraph_traverser.h
index 3f4eecf..4be6c1f 100644
--- a/reference_model/src/subgraph_traverser.h
+++ b/reference_model/src/subgraph_traverser.h
@@ -16,15 +16,22 @@
#ifndef SUBGRAPH_TRAVERSER_H
#define SUBGRAPH_TRAVERSER_H
-#include "model_common.h"
-
#include "graph_node.h"
+#include "model_common.h"
#include "ops/op_factory.h"
+#include "tensor.h"
#include "tosa_serialization_handler.h"
namespace TosaReference
{
+enum class GraphStatus : int
+{
+ TOSA_VALID = 0,
+ TOSA_UNPREDICTABLE = 1,
+ TOSA_ERROR = 2,
+};
+
class SubgraphTraverser
{
public:
@@ -36,6 +43,15 @@ public:
int evaluateNextNode();
int evaluateAll();
+ GraphStatus getGraphStatus() const
+ {
+ return graph_status;
+ }
+ void setGraphStatus(GraphStatus status)
+ {
+ graph_status = status;
+ }
+
int linkTensorsAndNodes();
int validateGraph();
@@ -59,6 +75,8 @@ private:
GraphNode* getNextNode();
+ GraphStatus graph_status;
+
// pointer to serialization library and corresponding basic block
TosaSerializationBasicBlock* block;
TosaSerializationHandler* tsh;