diff --git a/src/plugins/intel_gpu/include/intel_gpu/graph/program.hpp b/src/plugins/intel_gpu/include/intel_gpu/graph/program.hpp index 723fcc178997fd..c1e1e2ae6dba65 100644 --- a/src/plugins/intel_gpu/include/intel_gpu/graph/program.hpp +++ b/src/plugins/intel_gpu/include/intel_gpu/graph/program.hpp @@ -128,7 +128,7 @@ struct program { build_options const& options, bool is_internal = false, bool no_optimizations = false, - primitive_id parent_prim = ""); + bool is_body_program = false); /* constructor used to build a program from subset of nodes of other program (used in propagate_constants) */ program(engine& engine_ref, std::set> const& nodes, @@ -143,8 +143,7 @@ struct program { std::vector& get_outputs() { return outputs; } // ToDo: redesign reorder-inputs pass to make it const as_well as get_engine and get options - bool is_loop_body() const { return parent_primitive != ""; } - primitive_id get_parent_primitive() const { return parent_primitive; } + bool is_loop_body() const { return is_body_program; } bool is_debug_build() const { return options.get()->enabled(); } const nodes_ordering& get_processing_order() const; nodes_ordering& get_processing_order(); @@ -225,7 +224,7 @@ struct program { const build_options& options, bool is_internal = false, bool no_optimizations = false, - primitive_id parent_primitive = ""); + bool is_body_program = false); static ptr build_program(engine& engine, const std::set>& nodes, const build_options& options, @@ -254,9 +253,7 @@ struct program { nodes_ordering processing_order; std::unique_ptr pm; std::shared_ptr tuning_cache; - - // parent primitive of loop body program - primitive_id parent_primitive = ""; + bool is_body_program; std::map> nodes_map; std::list optimized_out; diff --git a/src/plugins/intel_gpu/src/graph/include/loop_inst.h b/src/plugins/intel_gpu/src/graph/include/loop_inst.h index 8dcf86eb7e143f..1d82ff02590543 100644 --- a/src/plugins/intel_gpu/src/graph/include/loop_inst.h +++ b/src/plugins/intel_gpu/src/graph/include/loop_inst.h @@ -343,7 +343,7 @@ struct typed_program_node : public typed_program_node_base { auto opts = get_program().get_options(); std::vector output_names_vec(output_names.begin(), output_names.end()); opts.set_option(build_option::outputs(output_names_vec)); - body_program = program::build_program(get_program().get_engine(), body, opts, false, false, this->id()); + body_program = program::build_program(get_program().get_engine(), body, opts, false, false, true); } const primitive_id& get_trip_count_id() const { return get_primitive()->trip_count_id; } diff --git a/src/plugins/intel_gpu/src/graph/program.cpp b/src/plugins/intel_gpu/src/graph/program.cpp index 56218b7c22e781..73fcf10162e70a 100644 --- a/src/plugins/intel_gpu/src/graph/program.cpp +++ b/src/plugins/intel_gpu/src/graph/program.cpp @@ -94,13 +94,13 @@ program::program(engine& engine_ref, build_options const& options, bool is_internal, bool no_optimizations, - primitive_id parent_id) + bool is_body_program) : _engine(engine_ref), _stream(_engine.create_stream()), options(options), processing_order(), tuning_cache(nullptr), - parent_primitive(parent_id) { + is_body_program(is_body_program) { init_primitives(); set_options(); pm = std::unique_ptr(new pass_manager(*this)); @@ -181,8 +181,8 @@ program::ptr program::build_program(engine& engine, const build_options& options, bool is_internal, bool no_optimizations, - primitive_id parent_id) { - return std::make_shared(engine, topology, options, is_internal, no_optimizations, parent_id); + bool is_body_program) { + return std::make_shared(engine, topology, options, is_internal, no_optimizations, is_body_program); } program::ptr program::build_program(engine& engine,