diff --git a/src/common/transformations/src/transformations/common_optimizations/optimize_strided_slice.cpp b/src/common/transformations/src/transformations/common_optimizations/optimize_strided_slice.cpp index 96a5073a41d..e223fdb6bb9 100644 --- a/src/common/transformations/src/transformations/common_optimizations/optimize_strided_slice.cpp +++ b/src/common/transformations/src/transformations/common_optimizations/optimize_strided_slice.cpp @@ -273,8 +273,9 @@ bool ngraph::pass::StridedSliceOptimization::run_on_model(const std::shared_ptr< bool rewritten = false; if (m_use_shapes) { rewritten = UselessStridedSliceEraser().run_on_model(f); - rewritten = rewritten || SharedStridedSliceEraser().run_on_model(f); - rewritten = rewritten || GroupedStridedSliceOptimizer().run_on_model(f); + // Execution of other passes is also needed even if 'rewritten' is already 'true' + rewritten = SharedStridedSliceEraser().run_on_model(f) || rewritten; + rewritten = GroupedStridedSliceOptimizer().run_on_model(f) || rewritten; } return rewritten; } diff --git a/src/inference/dev_api/memory_solver.hpp b/src/inference/dev_api/memory_solver.hpp index be43f4043d2..a94ff88e4c7 100644 --- a/src/inference/dev_api/memory_solver.hpp +++ b/src/inference/dev_api/memory_solver.hpp @@ -147,7 +147,8 @@ public: for (auto* box_in_slot : time_slots[i_slot]) { // intersect with already stored boxes for all covered time slots // and move up the new one if needed - popped_up = popped_up || popupTogetherWith(box, *box_in_slot); + // Execution of 'popupTogetherWith' is important even if 'popped_up' is already 'true' + popped_up = popupTogetherWith(box, *box_in_slot) || popped_up; } } } while (popped_up);