summaryrefslogtreecommitdiff
path: root/runtime/neurun/core/include/ir/Operand.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/neurun/core/include/ir/Operand.h')
-rw-r--r--runtime/neurun/core/include/ir/Operand.h130
1 files changed, 0 insertions, 130 deletions
diff --git a/runtime/neurun/core/include/ir/Operand.h b/runtime/neurun/core/include/ir/Operand.h
deleted file mode 100644
index b1f28de48..000000000
--- a/runtime/neurun/core/include/ir/Operand.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (c) 2018 Samsung Electronics Co., Ltd. All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __NEURUN_IR_OPERAND_H__
-#define __NEURUN_IR_OPERAND_H__
-
-#include <cassert>
-#include <cstdint>
-#include <cpp14/memory.h>
-#include <algorithm>
-
-#include "ir/Data.h"
-#include "ir/DataType.h"
-#include "ir/OperandInfo.h"
-#include "ir/operand/ParentInfo.h" // TODO Remove this dependency
-#include "ir/OperationIndexList.h"
-
-namespace neurun
-{
-namespace ir
-{
-
-class Operand
-{
-public:
- explicit Operand(const Shape &shape, const TypeInfo &type) : _info{shape, type}
- {
- // DO NOTHING
- }
-
-public:
- const Shape &shape(void) const { return _info.shape(); }
- const TypeInfo &typeInfo(void) const { return _info.typeInfo(); }
- const OperandInfo &info(void) const { return _info; }
- size_t operandSize(void) const;
-
- const OperationIndexList &getUses() const { return _uses; }
- const OperationIndexList &getDef() const { return _def; }
- void appendUse(const OperationIndex &idx);
- void removeUse(const OperationIndex &idx);
- void appendDef(const OperationIndex &idx);
- void removeDef(const OperationIndex &idx);
-
-public:
- void type(const DataType type) { _info.type(type); };
-
-public:
- void data(std::unique_ptr<Data> &&data) { _data = std::move(data); }
- const Data &data(void) const
- {
- assert(_data);
- return *_data;
- }
-
- /**
- * @brief Get true if Operand has data, otherwise @c false
- a @return @c true if Operand has data, otherwise @c false
- */
- bool isConstant(void) const { return _data != nullptr; }
-
-public:
- template <typename T, typename... Args> void data(Args &&... args)
- {
- data(nnfw::cpp14::make_unique<T>(std::forward<Args>(args)...));
- }
-
-public:
- template <typename T> T asScalar(void) const
- {
- assert((shape().rank() == 0) || ((shape().rank() == 1) && (shape().dim(0) == 1)));
- assert(_data != nullptr);
- assert((_data->base() != nullptr) && (_data->size() == sizeof(T)));
-
- return *(reinterpret_cast<const T *>(_data->base()));
- }
-
- template <typename T> std::vector<T> asVector() const
- {
- assert(isConstant());
- assert(_data->size() % sizeof(T) == 0);
-
- const auto *base = reinterpret_cast<const T *>(_data->base());
- const std::size_t size = _data->size() / sizeof(T);
- return std::vector<T>(base, base + size);
- }
-
-public:
- /**
- * @brief Set parent information
- * @param[in] parent_info Parent information
- */
- void parent_info(std::unique_ptr<operand::ParentInfo> &&parent_info);
- /**
- * @brief Return parent information pointer as constant
- * @return Parent information pointer
- */
- const operand::ParentInfo *parent_info() const;
- /**
- * @brief Return parent information pointer
- * @return Perent information pointer
- */
- operand::ParentInfo *parent_info();
-
-private:
- OperandInfo _info;
- std::shared_ptr<Data> _data;
-
- OperationIndexList _uses;
- OperationIndexList _def; // size is 0 (constant) or 1 (from def operation)
-
- std::shared_ptr<operand::ParentInfo> _parent_info;
-};
-
-} // namespace ir
-} // namespace neurun
-
-#endif // __NEURUN_IR_OPERAND_H__