namespace ngraph::snippets::pass

namespace pass {

// enums

enum SnippetsNodeType;

// templates

template AssignRegisters;
template ConvertConstantsToScalars;
template EnumerateNodes;
template InsertLoad;
template InsertMoveBroadcast;
template InsertStore;
template LoadMoveBroadcastToBroadcastLoad;
template ReplaceLoadsWithScalarLoads;
template ReplaceStoresWithScalarStores;
template TokenizeSnippets;

// classes

class ConvertPowerToPowerStatic;

// global functions

void SetSnippetsNodeType(const std::shared_ptr<Node>&, SnippetsNodeType);
SnippetsNodeType GetSnippetsNodeType(const std::shared_ptr<const Node>&);
void SetTopologicalOrder(const std::shared_ptr<Node>&, int64_t);
int64_t GetTopologicalOrder(const std::shared_ptr<const Node>&);
bool AppropriateForSubgraph(const std::shared_ptr<const Node>&);

} // namespace pass