#include "program_impl.h"
#include "primitive_inst.h"
#include "to_string_utils.h"
-
#include "json_object.h"
-#include "xml_object.h"
+
using namespace cldnn;
-program_node::program_node(std::shared_ptr<primitive> prim, program_impl & prog) : desc(prim), myprog(prog)
+program_node::program_node(std::shared_ptr<primitive> prim, program_impl & prog) : desc(prim), myprog(prog), org_id(prim->id)
{
if (prim)
output_layout.data_padding = prim->output_padding;
-
- processing_itr = prog.processing_order.end();
}
-void program_node::replace_dependency(size_t idx, program_node& new_dep, bool detach_whole_branch)
+void program_node::replace_dependency(size_t idx, program_node& new_dep)
{
if (idx >= dependencies.size())
return;
return;
dependencies[idx]->users.remove(this);
- myprog.remove_if_dangling(*dependencies[idx], detach_whole_branch);
+ myprog.remove_if_dangling(*dependencies[idx]);
dependencies[idx] = &new_dep;
new_dep.users.push_back(this);
}
-void program_node::replace_dependency(program_node const& old_dep, program_node& new_dep, bool detach_whole_branch)
+void program_node::replace_dependency(program_node const& old_dep, program_node& new_dep)
{
for (size_t i = 0; i < dependencies.size(); ++i)
if (dependencies[i] == &old_dep)
- return replace_dependency(i, new_dep, detach_whole_branch);
+ return replace_dependency(i, new_dep);
}
std::vector<primitive_id> program_node::get_dependencies_ids() const
memory_dependencies.insert(prim_list.begin(),prim_list.end());
}
-//Function used by serialization. Not working yet, in progress.
-std::unique_ptr<xml_composite> program_node::desc_to_xml() const
-{
- std::unique_ptr<xml_composite> node_info = std::unique_ptr<xml_composite>(new xml_composite());
- node_info->add("id", id());
- node_info->add("valid_output_layout", bool_to_str(valid_output_layout));
-
- xml_composite output_layout_info;
- output_layout_info.add("data_type", dt_to_str(output_layout.data_type));
- output_layout_info.add("format", fmt_to_str(output_layout.format));
- output_layout_info.add("size", output_layout.size.to_string());
-
- xml_composite padding_info;
- padding_info.add("lower_size", output_layout.data_padding.lower_size().to_string());
- padding_info.add("upper_size", output_layout.data_padding.upper_size().to_string());
- output_layout_info.add("padding_info", padding_info);
-
- node_info->add("output_layout", output_layout_info);
- node_info->add("processing_number", processing_num);
- node_info->add("constant", bool_to_str(constant));
- node_info->add("output", bool_to_str(output));
-
- std::vector<std::string> deps_ptrs;
- {
- bool empty = true;
- auto itr = dependencies.begin();
- while (itr != dependencies.end())
- {
- if (empty)
- {
- empty = false;
- }
- deps_ptrs.push_back(std::to_string(reinterpret_cast<uintptr_t>(*itr++)));
- }
- if (deps_ptrs.empty())
- {
- deps_ptrs.push_back("null");
- }
- }
- node_info->add("dependencies", deps_ptrs);
-
- std::vector<std::string> users_ptrs;
- {
- bool empty = true;
- auto itr = users.begin();
- while (itr != users.end())
- {
- if (empty)
- {
- empty = false;
- }
- users_ptrs.push_back(std::to_string(reinterpret_cast<uintptr_t>(*itr++)));
- }
- if (users_ptrs.empty())
- {
- users_ptrs.push_back("null");
- }
- }
- node_info->add("users", users_ptrs);
- return node_info;
- }
-
std::unique_ptr<json_composite> program_node::desc_to_json() const
{
std::unique_ptr<json_composite> node_info = std::unique_ptr<json_composite>(new json_composite());
node_info->add("output layout", output_layout_info);
- node_info->add("processing number", processing_num);
node_info->add("in data flow", bool_to_str(data_flow));
node_info->add("constant", bool_to_str(constant));
node_info->add("in data flow", bool_to_str(data_flow));
{
selected_impl = std::move(impl);
}
+