ONE - On-device Neural Engine
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
onert::ir::OperandIndexSequence Class Reference

#include <OperandIndexSequence.h>

Public Member Functions

 OperandIndexSequence (void)=default
 
 OperandIndexSequence (std::initializer_list< OperandIndex > list)
 
 OperandIndexSequence (std::initializer_list< int32_t > list)
 
 OperandIndexSequence (std::initializer_list< uint32_t > list)
 
void append (const OperandIndex &index)
 
void append (const OperandIndexSequence &l)
 
uint32_t size () const
 
const OperandIndexat (IOIndex set_index) const
 
const OperandIndexat (uint32_t index) const
 
bool contains (const OperandIndex &index) const
 
void replace (const OperandIndex &from, const OperandIndex &to)
 
OperandIndexSequence operator| (ir::Remove filter) const
 
bool operator== (const OperandIndexSequence &other) const
 
OperandIndexSequence operator+ (const OperandIndexSequence &other) const
 
std::vector< OperandIndex >::const_iterator begin (void) const
 
std::vector< OperandIndex >::const_iterator end (void) const
 
std::vector< OperandIndex >::iterator begin (void)
 
std::vector< OperandIndex >::iterator end (void)
 

Friends

std::ostream & operator<< (std::ostream &o, const OperandIndexSequence &operand_seq)
 

Detailed Description

Definition at line 34 of file OperandIndexSequence.h.

Constructor & Destructor Documentation

◆ OperandIndexSequence() [1/4]

onert::ir::OperandIndexSequence::OperandIndexSequence ( void  )
default

◆ OperandIndexSequence() [2/4]

onert::ir::OperandIndexSequence::OperandIndexSequence ( std::initializer_list< OperandIndex list)

Definition at line 25 of file OperandIndexSequence.cc.

25 : _vec(list)
26{
27 // DO NOTHING
28}

◆ OperandIndexSequence() [3/4]

onert::ir::OperandIndexSequence::OperandIndexSequence ( std::initializer_list< int32_t >  list)

Definition at line 30 of file OperandIndexSequence.cc.

31{
32 for (auto &&val : list)
33 {
34 _vec.emplace_back(static_cast<uint32_t>(val));
35 }
36}

◆ OperandIndexSequence() [4/4]

onert::ir::OperandIndexSequence::OperandIndexSequence ( std::initializer_list< uint32_t >  list)

Definition at line 38 of file OperandIndexSequence.cc.

39{
40 for (auto &&val : list)
41 {
42 _vec.emplace_back(val);
43 }
44}

Member Function Documentation

◆ append() [1/2]

◆ append() [2/2]

void onert::ir::OperandIndexSequence::append ( const OperandIndexSequence l)
inline

Definition at line 44 of file OperandIndexSequence.h.

44{ _vec.insert(_vec.end(), l.begin(), l.end()); }

◆ at() [1/2]

const OperandIndex & onert::ir::OperandIndexSequence::at ( IOIndex  set_index) const
inline

Definition at line 48 of file OperandIndexSequence.h.

48{ return _vec.at(set_index.value()); }

References onert::util::Index< T, DummyTag >::value().

Referenced by onert::backend::acl_common::AclConstantInitializer::copyInputInitialize(), onert::backend::cpu::findSharedMemoryOperandIndexes(), onert::backend::acl_common::kernelGenFullyConnected(), onert::backend::acl_common::kernelGenLSTM(), onert::compiler::train::pass::LossInsertionPass::run(), onert::backend::cpu::KernelGenerator::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::acl_common::AclConstantInitializer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::backend::acl_common::AclSubTensorAnalyzer::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::compiler::ShapeValidator::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::compiler::ShapeValidator::visit(), onert::compiler::ShapeValidator::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::compiler::ShapeValidator::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::acl_cl::ConstantInitializer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::compiler::ShapeValidator::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::acl_cl::ConstantInitializer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::backend::acl_neon::ConstantInitializer::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::compiler::ShapeValidator::visit(), onert::backend::cpu::KernelGenerator::visit(), onert::compiler::ShapeValidator::visit(), onert::exec::DynamicShapeInferer::visit(), onert::backend::train::KernelGenerator::visit(), onert::backend::train::KernelGenerator::visit(), onert::backend::train::KernelGenerator::visit(), onert::backend::train::KernelGenerator::visit(), onert::backend::train::KernelGenerator::visit(), onert::backend::train::KernelGenerator::visit(), onert::backend::train::KernelGenerator::visit(), onert::backend::train::KernelGenerator::visit(), onert::backend::train::KernelGenerator::visit(), onert::backend::train::KernelGenerator::visit(), onert::backend::train::KernelGenerator::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationValidator::visit(), onert::ir::OperationDumper::visit(), onert::ir::OperationDumper::visit(), onert::ir::train::UseDefGenerator::visit(), onert::ir::train::UseDefGenerator::visit(), onert::ir::train::UseDefGenerator::visit(), onert::ir::train::UseDefGenerator::visit(), onert::ir::train::UseDefGenerator::visit(), onert::ir::train::UseDefGenerator::visit(), onert::ir::train::UseDefGenerator::visit(), onert::ir::train::UseDefGenerator::visit(), onert::ir::train::UseDefGenerator::visit(), onert::ir::train::UseDefGenerator::visit(), and onert::ir::train::UseDefGenerator::visit().

◆ at() [2/2]

const OperandIndex & onert::ir::OperandIndexSequence::at ( uint32_t  index) const
inline

Definition at line 49 of file OperandIndexSequence.h.

49{ return _vec.at(index); }

◆ begin() [1/2]

std::vector< OperandIndex >::iterator onert::ir::OperandIndexSequence::begin ( void  )
inline

Definition at line 84 of file OperandIndexSequence.h.

84{ return _vec.begin(); }

◆ begin() [2/2]

std::vector< OperandIndex >::const_iterator onert::ir::OperandIndexSequence::begin ( void  ) const
inline

Definition at line 82 of file OperandIndexSequence.h.

82{ return _vec.begin(); }

◆ contains()

bool onert::ir::OperandIndexSequence::contains ( const OperandIndex index) const

◆ end() [1/2]

std::vector< OperandIndex >::iterator onert::ir::OperandIndexSequence::end ( void  )
inline

Definition at line 85 of file OperandIndexSequence.h.

85{ return _vec.end(); }

◆ end() [2/2]

std::vector< OperandIndex >::const_iterator onert::ir::OperandIndexSequence::end ( void  ) const
inline

Definition at line 83 of file OperandIndexSequence.h.

83{ return _vec.end(); }

◆ operator+()

OperandIndexSequence onert::ir::OperandIndexSequence::operator+ ( const OperandIndexSequence other) const

Definition at line 61 of file OperandIndexSequence.cc.

62{
63 OperandIndexSequence ret = *this;
64 ret.append(other);
65 return ret;
66}

References append().

◆ operator==()

bool onert::ir::OperandIndexSequence::operator== ( const OperandIndexSequence other) const

Definition at line 56 of file OperandIndexSequence.cc.

57{
58 return _vec == other._vec;
59}

◆ operator|()

OperandIndexSequence onert::ir::OperandIndexSequence::operator| ( ir::Remove  filter) const
inline

Definition at line 52 of file OperandIndexSequence.h.

53 {
54 switch (filter)
55 {
57 {
58 ir::OperandIndexSequence seq;
59 for (const auto &ind : _vec)
60 if (!seq.contains(ind))
61 seq.append(ind);
62 return seq;
63 }
65 {
66 ir::OperandIndexSequence seq;
67 for (const auto &ind : _vec)
68 if (!ind.undefined())
69 seq.append(ind);
70 return seq;
71 }
72 }
73 return *this;
74 }
bool contains(const OperandIndex &index) const
void append(const OperandIndex &index)

References append(), contains(), onert::ir::DUPLICATED, and onert::ir::UNDEFINED.

◆ replace()

void onert::ir::OperandIndexSequence::replace ( const OperandIndex from,
const OperandIndex to 
)

Definition at line 51 of file OperandIndexSequence.cc.

52{
53 std::replace(_vec.begin(), _vec.end(), from, to);
54}

Referenced by onert::ir::Operation::replaceInputs(), onert::ir::Operation::replaceOutputs(), and onert::compiler::pass::OddOutputPass::run().

◆ size()

Friends And Related Symbol Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream &  o,
const OperandIndexSequence operand_seq 
)
friend

Definition at line 68 of file OperandIndexSequence.cc.

69{
70 std::string delimeter;
71 for (const auto &ind : operand_seq._vec)
72 {
73 o << delimeter << ind;
74 delimeter = ',';
75 }
76 return o;
77}

The documentation for this class was generated from the following files: