diff options
author | Kevin Cheng <kevin.cheng@arm.com> | 2021-06-29 15:32:19 -0700 |
---|---|---|
committer | Kevin Cheng <kevin.cheng@arm.com> | 2021-08-20 18:07:06 +0100 |
commit | acb550f4410ae861e53cae27a9feb4b11d45769f (patch) | |
tree | ae2f4ec558c2cdf1afa020b80a09d7ab4be5ef6d /reference_model/src/ops/data_layout.cc | |
parent | 68e7aee65bda5ac03fa7def753b7dc7462554793 (diff) | |
download | reference_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/ops/data_layout.cc')
-rw-r--r-- | reference_model/src/ops/data_layout.cc | 51 |
1 files changed, 36 insertions, 15 deletions
diff --git a/reference_model/src/ops/data_layout.cc b/reference_model/src/ops/data_layout.cc index c66d64e..86326f5 100644 --- a/reference_model/src/ops/data_layout.cc +++ b/reference_model/src/ops/data_layout.cc @@ -21,8 +21,11 @@ using namespace Eigen; using namespace tosa; template <int Rank, DType Dtype> -OpConcat<Rank, Dtype>::OpConcat(TosaAttributeBase* attribute_, TosaQuantInfoBase* qinfo_, uint64_t id_) - : GraphNode(Op_CONCAT, id_) +OpConcat<Rank, Dtype>::OpConcat(SubgraphTraverser* sgt_, + TosaAttributeBase* attribute_, + TosaQuantInfoBase* qinfo_, + uint64_t id_) + : GraphNode(sgt_, Op_CONCAT, id_) { setRequiredOperands(-1, 1); setRequiredRank(1, 6); @@ -95,8 +98,11 @@ int OpConcat<Rank, Dtype>::eval() } template <int Rank, DType Dtype> -OpPad<Rank, Dtype>::OpPad(TosaAttributeBase* attribute_, TosaQuantInfoBase* qinfo_, uint64_t id_) - : GraphNode(Op_PAD, id_) +OpPad<Rank, Dtype>::OpPad(SubgraphTraverser* sgt_, + TosaAttributeBase* attribute_, + TosaQuantInfoBase* qinfo_, + uint64_t id_) + : GraphNode(sgt_, Op_PAD, id_) { setRequiredOperands(2, 1); setRequiredRank(0, 6); @@ -157,8 +163,11 @@ int OpPad<Rank, Dtype>::eval() } template <int InRank, int OutRank, DType Dtype> -OpReshape<InRank, OutRank, Dtype>::OpReshape(TosaAttributeBase* attribute_, TosaQuantInfoBase* qinfo_, uint64_t id_) - : GraphNode(Op_RESHAPE, id_) +OpReshape<InRank, OutRank, Dtype>::OpReshape(SubgraphTraverser* sgt_, + TosaAttributeBase* attribute_, + TosaQuantInfoBase* qinfo_, + uint64_t id_) + : GraphNode(sgt_, Op_RESHAPE, id_) { setRequiredOperands(1, 1); setRequiredRank(0, 6); @@ -274,8 +283,11 @@ int OpReshape<InRank, OutRank, Dtype>::eval() } template <int Rank, DType Dtype> -OpReverse<Rank, Dtype>::OpReverse(TosaAttributeBase* attribute_, TosaQuantInfoBase* qinfo_, uint64_t id_) - : GraphNode(Op_REVERSE, id_) +OpReverse<Rank, Dtype>::OpReverse(SubgraphTraverser* sgt_, + TosaAttributeBase* attribute_, + TosaQuantInfoBase* qinfo_, + uint64_t id_) + : GraphNode(sgt_, Op_REVERSE, id_) { setRequiredOperands(1, 1); setRequiredRank(1, 6); @@ -339,8 +351,11 @@ int OpReverse<Rank, Dtype>::eval() } template <int Rank, DType Dtype> -OpSlice<Rank, Dtype>::OpSlice(TosaAttributeBase* attribute_, TosaQuantInfoBase* qinfo_, uint64_t id_) - : GraphNode(Op_SLICE, id_) +OpSlice<Rank, Dtype>::OpSlice(SubgraphTraverser* sgt_, + TosaAttributeBase* attribute_, + TosaQuantInfoBase* qinfo_, + uint64_t id_) + : GraphNode(sgt_, Op_SLICE, id_) { setRequiredOperands(1, 1); setRequiredRank(0, 6); @@ -407,8 +422,11 @@ int OpSlice<Rank, Dtype>::eval() } template <int Rank, DType Dtype> -OpTileBase<Rank, Dtype>::OpTileBase(TosaAttributeBase* attribute_, TosaQuantInfoBase* qinfo_, uint64_t id_) - : GraphNode(Op_TILE, id_) +OpTileBase<Rank, Dtype>::OpTileBase(SubgraphTraverser* sgt_, + TosaAttributeBase* attribute_, + TosaQuantInfoBase* qinfo_, + uint64_t id_) + : GraphNode(sgt_, Op_TILE, id_) { setRequiredOperands(1, 1); setRequiredRank(0, 6); @@ -466,7 +484,7 @@ template <int Rank, DType Dtype> int OpTile<Rank, Dtype>::eval() { // primary template shouldn't be called - FATAL_ERROR_NODE("OpTile rank=%i, dtype=%s: not implemented yet", Rank, EnumNamesDType()[Dtype]); + FATAL_ERROR("OpTile rank=%i, dtype=%s: not implemented yet", Rank, EnumNamesDType()[Dtype]); } template <DType Dtype> @@ -542,8 +560,11 @@ int OpTile<4, Dtype>::eval() } template <int Rank, DType Dtype> -OpTranspose<Rank, Dtype>::OpTranspose(TosaAttributeBase* attribute_, TosaQuantInfoBase* qinfo_, uint64_t id_) - : GraphNode(Op_TRANSPOSE, id_) +OpTranspose<Rank, Dtype>::OpTranspose(SubgraphTraverser* sgt_, + TosaAttributeBase* attribute_, + TosaQuantInfoBase* qinfo_, + uint64_t id_) + : GraphNode(sgt_, Op_TRANSPOSE, id_) { setRequiredOperands(2, 1); setRequiredRank(0, 6); |