aboutsummaryrefslogtreecommitdiff
path: root/reference_model/src/ops/control_flow.cc
diff options
context:
space:
mode:
authorKevin Cheng <kevin.cheng@arm.com>2021-09-28 16:14:52 -0700
committerKevin Cheng <kevin.cheng@arm.com>2021-09-30 15:09:13 -0700
commit903763c07f1c8a77783735b05a6a9d722bee1639 (patch)
treeee76f447927e1d07b814391d8f2fbf9a0a7094ab /reference_model/src/ops/control_flow.cc
parent7fb8fa1826812c305cfcc64e3df256f408fea5a0 (diff)
downloadreference_model-903763c07f1c8a77783735b05a6a9d722bee1639.tar.gz
Add SUBGRAPH_ERROR_IF() to catch graph-level error.
- Also replace SIMPLE_FATAL_ERROR() with FATAL_ERROR() since they're duplicate - Replace FATAL_ERROR()/ASSERT_MSG() with ERROR_IF_SUBGRAPH() if the condition is a graph error FATAL_ERROR()/ASSERT() should only be used by model internal/runtime error like file reading. Signed-off-by: Kevin Cheng <kevin.cheng@arm.com> Change-Id: If1e1e2488054a0ecd800fb0f2ea6487019282500
Diffstat (limited to 'reference_model/src/ops/control_flow.cc')
-rw-r--r--reference_model/src/ops/control_flow.cc24
1 files changed, 6 insertions, 18 deletions
diff --git a/reference_model/src/ops/control_flow.cc b/reference_model/src/ops/control_flow.cc
index 0945056..2446457 100644
--- a/reference_model/src/ops/control_flow.cc
+++ b/reference_model/src/ops/control_flow.cc
@@ -39,20 +39,11 @@ int OpControlFlow::evalBlock(TosaSerializationBasicBlock* block,
SubgraphTraverser gt(block, tsh);
- if (gt.initializeGraph())
- {
- FATAL_ERROR("Unable to initialize graph traverser for block %s", block_name.c_str());
- }
+ ERROR_IF(gt.initializeGraph(), "Unable to initialize graph traverser for block %s", block_name.c_str());
- if (gt.linkTensorsAndNodes())
- {
- FATAL_ERROR("Failed to link tensors and nodes for block %s", block_name.c_str());
- }
+ ERROR_IF(gt.linkTensorsAndNodes(), "Failed to link tensors and nodes for block %s", block_name.c_str());
- if (gt.validateGraph())
- {
- FATAL_ERROR("Failed to validate subgraph for block %s", block_name.c_str());
- }
+ ERROR_IF(gt.validateGraph(), "Failed to validate subgraph for block %s", block_name.c_str());
int num_input_tensors = gt.getNumInputTensors();
int num_output_tensors = gt.getNumOutputTensors();
@@ -105,10 +96,7 @@ int OpControlFlow::evalBlock(TosaSerializationBasicBlock* block,
}
}
- if (gt.evaluateAll())
- {
- FATAL_ERROR("Error evaluating network. Giving up.");
- }
+ ERROR_IF(gt.evaluateAll(), "Error evaluating network. Giving up.");
// make sure output tensor is evaluated and show its value
bool all_output_valid = true;
@@ -129,8 +117,8 @@ int OpControlFlow::evalBlock(TosaSerializationBasicBlock* block,
if (!all_output_valid)
{
gt.dumpGraph(g_func_debug.func_debug_file);
- FATAL_ERROR("SubgraphTraverser \"%s\" error: Output tensors are not all valid at the end of evaluation.",
- block_name.c_str());
+ ERROR_IF(true, "SubgraphTraverser \"%s\" error: Output tensors are not all valid at the end of evaluation.",
+ block_name.c_str());
}
// set basic block's output = subgraph_traverser's output