OpenSTA/search/Levelize.cc

755 lines
21 KiB
C++
Raw Normal View History

2018-09-28 17:54:21 +02:00
// OpenSTA, Static Timing Analyzer
// Copyright (c) 2025, Parallax Software, Inc.
2018-09-28 17:54:21 +02:00
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2018-09-28 17:54:21 +02:00
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//
// The origin of this software must not be misrepresented; you must not
// claim that you wrote the original software.
//
// Altered source versions must be plainly marked as such, and must not be
// misrepresented as being the original software.
//
// This notice may not be removed or altered from any source distribution.
2018-09-28 17:54:21 +02:00
#include "Levelize.hh"
2020-04-05 20:35:51 +02:00
#include <algorithm>
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
#include <deque>
2020-04-05 20:35:51 +02:00
2020-04-05 23:53:44 +02:00
#include "Report.hh"
#include "Debug.hh"
#include "Stats.hh"
#include "TimingRole.hh"
#include "PortDirection.hh"
#include "Network.hh"
#include "Sdc.hh"
#include "Graph.hh"
#include "GraphCmp.hh"
#include "SearchPred.hh"
#include "Variables.hh"
#include "GraphDelayCalc.hh"
2020-04-05 20:35:51 +02:00
2018-09-28 17:54:21 +02:00
namespace sta {
2019-11-11 16:28:42 +01:00
using std::max;
2018-09-28 17:54:21 +02:00
Levelize::Levelize(StaState *sta) :
StaState(sta),
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
search_pred_(sta),
2018-09-28 17:54:21 +02:00
levelized_(false),
levels_valid_(false),
max_level_(0),
level_space_(10),
roots_(new VertexSet(graph_)),
relevelize_from_(new VertexSet(graph_)),
2019-03-13 01:25:53 +01:00
observer_(nullptr)
2018-09-28 17:54:21 +02:00
{
}
Levelize::~Levelize()
{
delete roots_;
delete relevelize_from_;
2018-09-28 17:54:21 +02:00
delete observer_;
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
loops_.deleteContents();
2018-09-28 17:54:21 +02:00
}
void
Levelize::setLevelSpace(Level space)
{
level_space_ = space;
}
void
Levelize::setObserver(LevelizeObserver *observer)
{
delete observer_;
observer_ = observer;
}
void
Levelize::clear()
{
levelized_ = false;
levels_valid_ = false;
roots_->clear();
relevelize_from_->clear();
2018-09-28 17:54:21 +02:00
clearLoopEdges();
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
loops_.deleteContentsClear();
loop_edges_.clear();
max_level_ = 0;
2018-09-28 17:54:21 +02:00
}
void
Levelize::clearLoopEdges()
{
EdgeSet::Iterator edge_iter(disabled_loop_edges_);
while (edge_iter.hasNext()) {
Edge *edge = edge_iter.next();
edge->setIsDisabledLoop(false);
}
disabled_loop_edges_.clear();
}
void
Levelize::ensureLevelized()
{
if (!levels_valid_) {
if (levelized_)
relevelize();
else
levelize();
}
}
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
#define onPath() visied2()
#define setOnPath(on_path) setVisited2(on_path)
2018-09-28 17:54:21 +02:00
void
Levelize::levelize()
{
2020-12-29 19:33:22 +01:00
Stats stats(debug_, report_);
2021-03-13 01:36:13 +01:00
debugPrint(debug_, "levelize", 1, "levelize");
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
clear();
VertexIterator vertex_iter(graph_);
while (vertex_iter.hasNext()) {
Vertex *vertex = vertex_iter.next();
// findBackEdges() init
vertex->setVisited(false);
vertex->setOnPath(false);
// assignLevels init
vertex->setLevel(-1);
}
2018-09-28 17:54:21 +02:00
findRoots();
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
findBackEdges();
VertexSeq topo_sorted = findToplologicalOrder();
assignLevels(topo_sorted);
2018-09-28 17:54:21 +02:00
ensureLatchLevels();
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
// Set level of stranded vertices (constants) to zero.
VertexIterator vertex_iter2(graph_);
while (vertex_iter2.hasNext()) {
Vertex *vertex = vertex_iter2.next();
if (vertex->level() == -1)
setLevel(vertex, 0);
// cleanup
vertex->setVisited(false);
vertex->setOnPath(false);
}
2018-09-28 17:54:21 +02:00
levelized_ = true;
levels_valid_ = true;
stats.report("Levelize");
}
void
Levelize::findRoots()
{
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
roots_->clear();
2018-09-28 17:54:21 +02:00
VertexIterator vertex_iter(graph_);
while (vertex_iter.hasNext()) {
Vertex *vertex = vertex_iter.next();
if (isRoot(vertex)) {
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
debugPrint(debug_, "levelize", 2, "root %s%s",
vertex->to_string(this).c_str(),
hasFanout(vertex) ? " fanout" : "");
roots_->insert(vertex);
2018-09-28 17:54:21 +02:00
}
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
}
if (debug_->check("levelize", 1)) {
size_t fanout_roots = 0;
for (Vertex *root : *roots_) {
if (hasFanout(root))
fanout_roots++;
}
debugPrint(debug_, "levelize", 1, "Found %zu roots %zu with fanout",
roots_->size(),
fanout_roots);
2018-09-28 17:54:21 +02:00
}
}
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
// Root vertices have at no non-disabled edges entering them
// and are not disabled and have non-disabled fanout edges.
2018-09-28 17:54:21 +02:00
bool
Levelize::isRoot(Vertex *vertex)
{
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
if (search_pred_.searchTo(vertex)) {
VertexInEdgeIterator edge_iter1(vertex, graph_);
while (edge_iter1.hasNext()) {
Edge *edge = edge_iter1.next();
2018-09-28 17:54:21 +02:00
Vertex *from_vertex = edge->from(graph_);
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
if (search_pred_.searchFrom(from_vertex)
&& search_pred_.searchThru(edge))
return false;
2018-09-28 17:54:21 +02:00
}
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
// Levelize bidirect driver as if it was a fanout of the bidirect load.
return !(graph_delay_calc_->bidirectDrvrSlewFromLoad(vertex->pin())
&& vertex->isBidirectDriver());
2018-09-28 17:54:21 +02:00
}
else
return false;
}
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
bool
Levelize::hasFanout(Vertex *vertex)
2018-09-28 17:54:21 +02:00
{
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
bool has_fanout = false;
if (search_pred_.searchFrom(vertex)) {
VertexOutEdgeIterator edge_iter2(vertex, graph_);
while (edge_iter2.hasNext()) {
Edge *edge = edge_iter2.next();
Vertex *to_vertex = edge->from(graph_);
if (search_pred_.searchTo(to_vertex)
&& search_pred_.searchThru(edge)) {
has_fanout = true;
break;
}
}
// Levelize bidirect driver as if it was a fanout of the bidirect load.
if (graph_delay_calc_->bidirectDrvrSlewFromLoad(vertex->pin())
&& !vertex->isBidirectDriver())
has_fanout = true;
}
return has_fanout;
2018-09-28 17:54:21 +02:00
}
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
// Non-recursive DFS to find back edges so the graph is acyclic.
2018-09-28 17:54:21 +02:00
void
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
Levelize::findBackEdges()
2018-09-28 17:54:21 +02:00
{
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
Stats stats(debug_, report_);
EdgeSeq path;
FindBackEdgesStack stack;
VertexSeq sorted_roots = sortedRootsWithFanout();
for (Vertex *vertex : sorted_roots) {
vertex->setVisited(true);
vertex->setOnPath(true);
stack.emplace(vertex, new VertexOutEdgeIterator(vertex, graph_));
2018-09-28 17:54:21 +02:00
}
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
findBackEdges(path, stack);
findCycleBackEdges();
stats.report("Levelize find back edges");
2018-09-28 17:54:21 +02:00
}
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
VertexSeq
Levelize::sortedRootsWithFanout()
2018-09-28 17:54:21 +02:00
{
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
VertexSeq roots;
for (Vertex *root : *roots_) {
if (hasFanout(root))
roots.push_back(root);
}
// Sort the roots so that loop breaking is stable in regressions.
// Skip sorting if it will take a long time.
if (roots.size() < 100)
sort(roots, VertexNameLess(network_));
return roots;
}
2018-09-28 17:54:21 +02:00
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
EdgeSet
Levelize::findBackEdges(EdgeSeq &path,
FindBackEdgesStack &stack)
{
EdgeSet back_edges;
while (!stack.empty()) {
VertexEdgeIterPair vertex_iter = stack.top();
Vertex *vertex = vertex_iter.first;
VertexOutEdgeIterator *edge_iter = vertex_iter.second;
if (edge_iter->hasNext()) {
Edge *edge = edge_iter->next();
if (search_pred_.searchThru(edge)) {
Vertex *to_vertex = edge->to(graph_);
if (!to_vertex->visited()) {
to_vertex->setVisited(true);
to_vertex->setOnPath(true);
path.push_back(edge);
stack.emplace(to_vertex, new VertexOutEdgeIterator(to_vertex, graph_));
}
else if (to_vertex->visited2()) { // on path
// Found a back edge (loop).
2021-05-18 02:27:48 +02:00
recordLoop(edge, path);
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
back_edges.insert(edge);
}
2018-09-28 17:54:21 +02:00
}
}
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
else {
delete edge_iter;
stack.pop();
vertex->setOnPath(false);
if (!path.empty())
path.pop_back();
2018-09-28 17:54:21 +02:00
}
}
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
return back_edges;
2018-09-28 17:54:21 +02:00
}
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
// Find back edges in cycles that are were not accessible from roots.
// Add roots for the disabled back edges so they are become accessible.
2021-05-18 02:27:48 +02:00
void
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
Levelize::findCycleBackEdges()
2021-05-18 02:27:48 +02:00
{
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
// Search root-less cycles for back edges.
VertexSeq unvisited = findUnvisitedVertices();
// Sort cycle vertices so results are stable.
// Skip sorting if it will take a long time.
if (unvisited.size() < 100)
sort(unvisited, VertexNameLess(network_));
size_t back_edge_count = 0;
VertexSet visited(graph_);
for (Vertex *vertex : unvisited) {
if (visited.find(vertex) == visited.end()) {
VertexSet path_vertices(graph_);
EdgeSeq path;
FindBackEdgesStack stack;
visited.insert(vertex);
path_vertices.insert(vertex);
stack.emplace(vertex, new VertexOutEdgeIterator(vertex, graph_));
EdgeSet back_edges = findBackEdges(path, stack);
for (Edge *back_edge : back_edges)
roots_->insert(back_edge->from(graph_));
back_edge_count += back_edges.size();
}
}
debugPrint(debug_, "levelize", 1, "Found %zu cycle back edges", back_edge_count);
}
// Find vertices in cycles that are were not accessible from roots.
VertexSeq
Levelize::findUnvisitedVertices()
{
VertexSeq unvisited;
VertexIterator vertex_iter(graph_);
while (vertex_iter.hasNext()) {
Vertex *vertex = vertex_iter.next();
if (!vertex->visited()
&& search_pred_.searchFrom(vertex))
unvisited.push_back(vertex);
}
return unvisited;
}
////////////////////////////////////////////////////////////////
VertexSeq
Levelize::findToplologicalOrder()
{
Stats stats(debug_, report_);
std::map<Vertex*, int> in_degree;
VertexIterator vertex_iter(graph_);
while (vertex_iter.hasNext()) {
Vertex *vertex = vertex_iter.next();
if (search_pred_.searchFrom(vertex)) {
VertexOutEdgeIterator edge_iter(vertex, graph_);
while (edge_iter.hasNext()) {
Edge *edge = edge_iter.next();
Vertex *to_vertex = edge->to(graph_);
if (search_pred_.searchThru(edge)
&& search_pred_.searchTo(to_vertex))
in_degree[to_vertex] += 1;
if (edge->role() == TimingRole::latchDtoQ())
latch_d_to_q_edges_.insert(edge);
}
// Levelize bidirect driver as if it was a fanout of the bidirect load.
const Pin *pin = vertex->pin();
if (graph_delay_calc_->bidirectDrvrSlewFromLoad(pin)
&& !vertex->isBidirectDriver()) {
Vertex *to_vertex = graph_->pinDrvrVertex(pin);;
if (search_pred_.searchTo(to_vertex))
in_degree[to_vertex] += 1;
}
}
}
std::deque<Vertex*> queue;
for (Vertex *root : *roots_)
queue.push_back(root);
VertexSeq topo_order;
while (!queue.empty()) {
Vertex *vertex = queue.front();
queue.pop_front();
topo_order.push_back(vertex);
if (search_pred_.searchFrom(vertex)) {
VertexOutEdgeIterator edge_iter(vertex, graph_);
while (edge_iter.hasNext()) {
Edge *edge = edge_iter.next();
Vertex *to_vertex = edge->to(graph_);
if (search_pred_.searchThru(edge)
&& search_pred_.searchTo(to_vertex)) {
const auto &to_degree_itr = in_degree.find(to_vertex);
int &to_in_degree = to_degree_itr->second;
to_in_degree -= 1;
if (to_in_degree == 0)
queue.push_back(to_vertex);
}
}
}
// Levelize bidirect driver as if it was a fanout of the bidirect load.
const Pin *pin = vertex->pin();
if (graph_delay_calc_->bidirectDrvrSlewFromLoad(pin)
&& !vertex->isBidirectDriver()) {
Vertex *to_vertex = graph_->pinDrvrVertex(pin);
if (search_pred_.searchTo(to_vertex)) {
const auto &degree_itr = in_degree.find(to_vertex);
int &in_degree = degree_itr->second;
in_degree -= 1;
if (in_degree == 0)
queue.push_back(to_vertex);
}
}
2021-05-18 02:27:48 +02:00
}
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
if (debug_->check("levelize", 1)) {
VertexIterator vertex_iter(graph_);
while (vertex_iter.hasNext()) {
Vertex *vertex = vertex_iter.next();
if (in_degree[vertex] != 0)
debugPrint(debug_, "levelize", 2, "topological sort missing %s",
vertex->to_string(this).c_str());
}
}
if (debug_->check("levelize", 3)) {
report_->reportLine("Topological sort");
for (Vertex *vertex : topo_order)
report_->reportLine("%s", vertex->to_string(this).c_str());
}
stats.report("Levelize topological sort");
return topo_order;
2021-05-18 02:27:48 +02:00
}
2018-09-28 17:54:21 +02:00
void
Levelize::recordLoop(Edge *edge,
EdgeSeq &path)
{
name, asString -> to_string, const commit d122d05822e02dcc08c665ac6ec7513791dd7209 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Mar 27 08:58:22 2025 -0700 rebase Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9c7ae9a7ddd885ebdab102d48b3f39dc5dacf948 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Mar 25 16:21:52 2025 -0700 write_spice8 Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 2bd088f03bb2e414305232d9ebd76c9d1958ec81 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Mar 25 10:08:00 2025 -0700 liberty reader stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 86974caf063433b37ed1378e7103db4b2e55a04c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 20:25:39 2025 -0700 ConcreteLiberary/Cell/Port use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 334476e185149a90b35cdd859e0a760ec9aa242a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 20:16:08 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5130e8d44804f483d9099d48bb413a7f3362b4e1 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 15:57:14 2025 -0700 liberty parser stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d48eba88cbde9093e3eb12bcee8eb48ccd444434 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 11:16:04 2025 -0700 stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 6913fb198d642f6b05a94fb1852064706a748b81 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 11:06:17 2025 -0700 stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 371bca08ecf9bf816b7adcbb7ae1458c4073f5f8 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 10:44:31 2025 -0700 TableTemplate use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 326465920a1f4a33dbe6be35cff5ca2245b6677e Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 09:04:55 2025 -0700 use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b93a542ddfbcb5c793c9b533cbe64ea20ec08f4a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 08:59:01 2025 -0700 timingSenseString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 6c121a0ff4231b37df076a62e83832897be62ff4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 16:09:47 2025 -0700 Corner use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 07b989a5a43bf5d341aa6ba2880be663997577d5 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 16:05:43 2025 -0700 Tag::to_string() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 0b9480cc5a3fa9ef0cb1c6e8ba0d4a29de2df816 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 15:53:29 2025 -0700 PathAnalysisPt::to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a028659091e99270f7501615285730681ed59523 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 12:19:03 2025 -0700 TimingRole stati alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 495be6a57bda23d82e511282f5db7c188b32971b Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 21:36:52 2025 -0700 RiseFall/RiseFallBoth/Transition const Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c4b28adb383321b1172f4b774c7c4d9a1aee69f Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 20:38:26 2025 -0700 TimingRole const Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 54ab58ec7200d420bf3b5e709e74b652af88d508 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 14:15:07 2025 -0700 const MinMax Signed-off-by: James Cherry <cherry@parallaxsw.com> commit f70bb38df17b2ed758c7b6ba5647b7355366c0c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 13:14:31 2025 -0700 Transition::to_string(() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b3f3d67328194351fb8efac2219bcfbcec331552 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 12:33:25 2025 -0700 RiseFall::to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4046f8a376926dfde980860c51d2c5c70cf4a867 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Mar 20 09:04:10 2025 -0700 TimingRole::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit cf4dd918eccb05d459f1804ced8365c81a5c6a50 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 20:14:42 2025 -0700 MinMax::asString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d80118117dda25be7b2b4896f19e955645c27f73 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 17:43:08 2025 -0700 TimingRole::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 284fa25c28aca998e8ce92e7b7bb927697494a13 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 17:02:27 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 646f19749b997e03dc4cbdf165cd7637010276d3 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 14:47:40 2025 -0700 FuncExpr::asString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4f73d8e7ad21feac6f41130b7b070f3e345b6fb5 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 14:04:13 2025 -0700 Vertex::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7c7ec486aaea86f6607a1ef72bb1a74dca603831 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 13:39:24 2025 -0700 Vertex::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-03-31 00:27:53 +02:00
debugPrint(debug_, "levelize", 2, "Loop edge %s (%s)",
edge->to_string(this).c_str(),
edge->role()->to_string().c_str());
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
EdgeSeq *loop_edges = loopEdges(path, edge);
GraphLoop *loop = new GraphLoop(loop_edges);
loops_.push_back(loop);
if (variables_->dynamicLoopBreaking())
sdc_->makeLoopExceptions(loop);
2018-09-28 17:54:21 +02:00
// Record disabled loop edges so they can be cleared without
// traversing the entire graph to find them.
disabled_loop_edges_.insert(edge);
edge->setIsDisabledLoop(true);
}
EdgeSeq *
Levelize::loopEdges(EdgeSeq &path,
Edge *closing_edge)
{
2021-03-13 01:36:13 +01:00
debugPrint(debug_, "loop", 2, "Loop");
2018-09-28 17:54:21 +02:00
EdgeSeq *loop_edges = new EdgeSeq;
// Skip the "head" of the path up to where closing_edge closes the loop.
Pin *loop_pin = closing_edge->to(graph_)->pin();
bool copy = false;
EdgeSeq::Iterator edge_iter(path);
while (edge_iter.hasNext()) {
Edge *edge = edge_iter.next();
Pin *from_pin = edge->from(graph_)->pin();
if (from_pin == loop_pin)
copy = true;
if (copy) {
name, asString -> to_string, const commit d122d05822e02dcc08c665ac6ec7513791dd7209 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Mar 27 08:58:22 2025 -0700 rebase Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9c7ae9a7ddd885ebdab102d48b3f39dc5dacf948 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Mar 25 16:21:52 2025 -0700 write_spice8 Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 2bd088f03bb2e414305232d9ebd76c9d1958ec81 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Mar 25 10:08:00 2025 -0700 liberty reader stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 86974caf063433b37ed1378e7103db4b2e55a04c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 20:25:39 2025 -0700 ConcreteLiberary/Cell/Port use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 334476e185149a90b35cdd859e0a760ec9aa242a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 20:16:08 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5130e8d44804f483d9099d48bb413a7f3362b4e1 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 15:57:14 2025 -0700 liberty parser stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d48eba88cbde9093e3eb12bcee8eb48ccd444434 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 11:16:04 2025 -0700 stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 6913fb198d642f6b05a94fb1852064706a748b81 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 11:06:17 2025 -0700 stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 371bca08ecf9bf816b7adcbb7ae1458c4073f5f8 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 10:44:31 2025 -0700 TableTemplate use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 326465920a1f4a33dbe6be35cff5ca2245b6677e Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 09:04:55 2025 -0700 use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b93a542ddfbcb5c793c9b533cbe64ea20ec08f4a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 08:59:01 2025 -0700 timingSenseString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 6c121a0ff4231b37df076a62e83832897be62ff4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 16:09:47 2025 -0700 Corner use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 07b989a5a43bf5d341aa6ba2880be663997577d5 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 16:05:43 2025 -0700 Tag::to_string() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 0b9480cc5a3fa9ef0cb1c6e8ba0d4a29de2df816 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 15:53:29 2025 -0700 PathAnalysisPt::to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a028659091e99270f7501615285730681ed59523 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 12:19:03 2025 -0700 TimingRole stati alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 495be6a57bda23d82e511282f5db7c188b32971b Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 21:36:52 2025 -0700 RiseFall/RiseFallBoth/Transition const Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c4b28adb383321b1172f4b774c7c4d9a1aee69f Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 20:38:26 2025 -0700 TimingRole const Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 54ab58ec7200d420bf3b5e709e74b652af88d508 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 14:15:07 2025 -0700 const MinMax Signed-off-by: James Cherry <cherry@parallaxsw.com> commit f70bb38df17b2ed758c7b6ba5647b7355366c0c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 13:14:31 2025 -0700 Transition::to_string(() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b3f3d67328194351fb8efac2219bcfbcec331552 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 12:33:25 2025 -0700 RiseFall::to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4046f8a376926dfde980860c51d2c5c70cf4a867 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Mar 20 09:04:10 2025 -0700 TimingRole::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit cf4dd918eccb05d459f1804ced8365c81a5c6a50 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 20:14:42 2025 -0700 MinMax::asString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d80118117dda25be7b2b4896f19e955645c27f73 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 17:43:08 2025 -0700 TimingRole::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 284fa25c28aca998e8ce92e7b7bb927697494a13 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 17:02:27 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 646f19749b997e03dc4cbdf165cd7637010276d3 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 14:47:40 2025 -0700 FuncExpr::asString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4f73d8e7ad21feac6f41130b7b070f3e345b6fb5 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 14:04:13 2025 -0700 Vertex::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7c7ec486aaea86f6607a1ef72bb1a74dca603831 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 13:39:24 2025 -0700 Vertex::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-03-31 00:27:53 +02:00
debugPrint(debug_, "loop", 2, " %s",
edge->to_string(this).c_str());
2018-09-28 17:54:21 +02:00
loop_edges->push_back(edge);
loop_edges_.insert(edge);
}
}
name, asString -> to_string, const commit d122d05822e02dcc08c665ac6ec7513791dd7209 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Mar 27 08:58:22 2025 -0700 rebase Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9c7ae9a7ddd885ebdab102d48b3f39dc5dacf948 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Mar 25 16:21:52 2025 -0700 write_spice8 Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 2bd088f03bb2e414305232d9ebd76c9d1958ec81 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Mar 25 10:08:00 2025 -0700 liberty reader stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 86974caf063433b37ed1378e7103db4b2e55a04c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 20:25:39 2025 -0700 ConcreteLiberary/Cell/Port use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 334476e185149a90b35cdd859e0a760ec9aa242a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 20:16:08 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5130e8d44804f483d9099d48bb413a7f3362b4e1 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 15:57:14 2025 -0700 liberty parser stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d48eba88cbde9093e3eb12bcee8eb48ccd444434 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 11:16:04 2025 -0700 stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 6913fb198d642f6b05a94fb1852064706a748b81 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 11:06:17 2025 -0700 stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 371bca08ecf9bf816b7adcbb7ae1458c4073f5f8 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 10:44:31 2025 -0700 TableTemplate use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 326465920a1f4a33dbe6be35cff5ca2245b6677e Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 09:04:55 2025 -0700 use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b93a542ddfbcb5c793c9b533cbe64ea20ec08f4a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 08:59:01 2025 -0700 timingSenseString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 6c121a0ff4231b37df076a62e83832897be62ff4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 16:09:47 2025 -0700 Corner use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 07b989a5a43bf5d341aa6ba2880be663997577d5 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 16:05:43 2025 -0700 Tag::to_string() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 0b9480cc5a3fa9ef0cb1c6e8ba0d4a29de2df816 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 15:53:29 2025 -0700 PathAnalysisPt::to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a028659091e99270f7501615285730681ed59523 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 12:19:03 2025 -0700 TimingRole stati alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 495be6a57bda23d82e511282f5db7c188b32971b Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 21:36:52 2025 -0700 RiseFall/RiseFallBoth/Transition const Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c4b28adb383321b1172f4b774c7c4d9a1aee69f Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 20:38:26 2025 -0700 TimingRole const Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 54ab58ec7200d420bf3b5e709e74b652af88d508 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 14:15:07 2025 -0700 const MinMax Signed-off-by: James Cherry <cherry@parallaxsw.com> commit f70bb38df17b2ed758c7b6ba5647b7355366c0c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 13:14:31 2025 -0700 Transition::to_string(() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b3f3d67328194351fb8efac2219bcfbcec331552 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 12:33:25 2025 -0700 RiseFall::to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4046f8a376926dfde980860c51d2c5c70cf4a867 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Mar 20 09:04:10 2025 -0700 TimingRole::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit cf4dd918eccb05d459f1804ced8365c81a5c6a50 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 20:14:42 2025 -0700 MinMax::asString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d80118117dda25be7b2b4896f19e955645c27f73 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 17:43:08 2025 -0700 TimingRole::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 284fa25c28aca998e8ce92e7b7bb927697494a13 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 17:02:27 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 646f19749b997e03dc4cbdf165cd7637010276d3 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 14:47:40 2025 -0700 FuncExpr::asString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4f73d8e7ad21feac6f41130b7b070f3e345b6fb5 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 14:04:13 2025 -0700 Vertex::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7c7ec486aaea86f6607a1ef72bb1a74dca603831 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 13:39:24 2025 -0700 Vertex::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-03-31 00:27:53 +02:00
debugPrint(debug_, "loop", 2, " %s",
closing_edge->to_string(this).c_str());
2018-09-28 17:54:21 +02:00
loop_edges->push_back(closing_edge);
loop_edges_.insert(closing_edge);
return loop_edges;
}
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
void
Levelize::reportPath(EdgeSeq &path) const
{
bool first_edge = true;
EdgeSeq::Iterator edge_iter(path);
while (edge_iter.hasNext()) {
Edge *edge = edge_iter.next();
if (first_edge)
report_->reportLine(" %s", edge->from(graph_)->to_string(this).c_str());
report_->reportLine(" %s", edge->to(graph_)->to_string(this).c_str());
first_edge = false;
}
}
////////////////////////////////////////////////////////////////
void
Levelize::assignLevels(VertexSeq &topo_sorted)
{
for (Vertex *root : *roots_)
setLevel(root, 0);
for (Vertex *vertex : topo_sorted) {
if (vertex->level() != -1) {
VertexOutEdgeIterator edge_iter(vertex, graph_);
while (edge_iter.hasNext()) {
Edge *edge = edge_iter.next();
Vertex *to_vertex = edge->to(graph_);
if (search_pred_.searchThru(edge)
&& search_pred_.searchTo(to_vertex))
setLevel(to_vertex, max(to_vertex->level(),
vertex->level() + level_space_));
}
// Levelize bidirect driver as if it was a fanout of the bidirect load.
const Pin *pin = vertex->pin();
if (graph_delay_calc_->bidirectDrvrSlewFromLoad(pin)
&& !vertex->isBidirectDriver()) {
Vertex *to_vertex = graph_->pinDrvrVertex(pin);
if (search_pred_.searchTo(to_vertex))
setLevel(to_vertex, max(to_vertex->level(),
vertex->level() + level_space_));
}
}
}
}
////////////////////////////////////////////////////////////////
2018-09-28 17:54:21 +02:00
// Make sure latch D input level is not the same as the Q level.
// This is because the Q arrival depends on the D arrival and
// to find them in parallel they have to be scheduled separately
// to avoid a race condition.
void
Levelize::ensureLatchLevels()
{
EdgeSet::Iterator latch_edge_iter(latch_d_to_q_edges_);
while (latch_edge_iter.hasNext()) {
Edge *edge = latch_edge_iter.next();
Vertex *from = edge->from(graph_);
Vertex *to = edge->to(graph_);
if (from->level() == to->level())
setLevel(from, from->level() + level_space_);
}
latch_d_to_q_edges_.clear();
}
void
Levelize::invalid()
{
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
if (levelized_) {
debugPrint(debug_, "levelize", 1, "levels invalid");
levelized_ = false;
levels_valid_ = false;
}
2018-09-28 17:54:21 +02:00
}
void
Levelize::invalidFrom(Vertex *vertex)
{
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
if (levelized_) {
debugPrint(debug_, "levelize", 1, "level invalid from %s",
vertex->to_string(this).c_str());
VertexInEdgeIterator edge_iter(vertex, graph_);
while (edge_iter.hasNext()) {
Edge *edge = edge_iter.next();
Vertex *from_vertex = edge->from(graph_);
relevelize_from_->insert(from_vertex);
}
relevelize_from_->insert(vertex);
levels_valid_ = false;
2018-09-28 17:54:21 +02:00
}
}
void
Levelize::deleteVertexBefore(Vertex *vertex)
{
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
if (levelized_) {
roots_->erase(vertex);
relevelize_from_->erase(vertex);
}
2018-09-28 17:54:21 +02:00
}
void
Levelize::relevelizeFrom(Vertex *vertex)
{
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
if (levelized_) {
debugPrint(debug_, "levelize", 1, "invalid relevelize from %s",
vertex->to_string(this).c_str());
relevelize_from_->insert(vertex);
levels_valid_ = false;
}
2018-09-28 17:54:21 +02:00
}
void
Levelize::deleteEdgeBefore(Edge *edge)
{
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
if (levelized_
&& loop_edges_.hasKey(edge)) {
disabled_loop_edges_.erase(edge);
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
// Relevelize if a loop edge is removed. Incremental levelization
// fails because the DFS path will be missing.
levelized_ = false;
levels_valid_ = false;
2018-09-28 17:54:21 +02:00
}
}
// Incremental relevelization.
// Note that if vertices or edges are removed from the graph the
// downstream levels will NOT be reduced to the "correct" level (the
// search will immediately terminate without visiting downstream
// vertices because the new level is less than the existing level).
// This is acceptable because the BFS search that depends on the
// levels only requires that a vertex level be greater than that of
// its predecessors.
void
Levelize::relevelize()
{
for (Vertex *vertex : *relevelize_from_) {
2021-01-01 20:46:51 +01:00
debugPrint(debug_, "levelize", 1, "relevelize from %s",
name, asString -> to_string, const commit d122d05822e02dcc08c665ac6ec7513791dd7209 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Mar 27 08:58:22 2025 -0700 rebase Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9c7ae9a7ddd885ebdab102d48b3f39dc5dacf948 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Mar 25 16:21:52 2025 -0700 write_spice8 Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 2bd088f03bb2e414305232d9ebd76c9d1958ec81 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Mar 25 10:08:00 2025 -0700 liberty reader stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 86974caf063433b37ed1378e7103db4b2e55a04c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 20:25:39 2025 -0700 ConcreteLiberary/Cell/Port use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 334476e185149a90b35cdd859e0a760ec9aa242a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 20:16:08 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5130e8d44804f483d9099d48bb413a7f3362b4e1 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 15:57:14 2025 -0700 liberty parser stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d48eba88cbde9093e3eb12bcee8eb48ccd444434 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 11:16:04 2025 -0700 stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 6913fb198d642f6b05a94fb1852064706a748b81 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 11:06:17 2025 -0700 stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 371bca08ecf9bf816b7adcbb7ae1458c4073f5f8 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 10:44:31 2025 -0700 TableTemplate use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 326465920a1f4a33dbe6be35cff5ca2245b6677e Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 09:04:55 2025 -0700 use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b93a542ddfbcb5c793c9b533cbe64ea20ec08f4a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 08:59:01 2025 -0700 timingSenseString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 6c121a0ff4231b37df076a62e83832897be62ff4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 16:09:47 2025 -0700 Corner use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 07b989a5a43bf5d341aa6ba2880be663997577d5 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 16:05:43 2025 -0700 Tag::to_string() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 0b9480cc5a3fa9ef0cb1c6e8ba0d4a29de2df816 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 15:53:29 2025 -0700 PathAnalysisPt::to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a028659091e99270f7501615285730681ed59523 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 12:19:03 2025 -0700 TimingRole stati alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 495be6a57bda23d82e511282f5db7c188b32971b Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 21:36:52 2025 -0700 RiseFall/RiseFallBoth/Transition const Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c4b28adb383321b1172f4b774c7c4d9a1aee69f Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 20:38:26 2025 -0700 TimingRole const Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 54ab58ec7200d420bf3b5e709e74b652af88d508 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 14:15:07 2025 -0700 const MinMax Signed-off-by: James Cherry <cherry@parallaxsw.com> commit f70bb38df17b2ed758c7b6ba5647b7355366c0c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 13:14:31 2025 -0700 Transition::to_string(() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b3f3d67328194351fb8efac2219bcfbcec331552 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 12:33:25 2025 -0700 RiseFall::to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4046f8a376926dfde980860c51d2c5c70cf4a867 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Mar 20 09:04:10 2025 -0700 TimingRole::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit cf4dd918eccb05d459f1804ced8365c81a5c6a50 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 20:14:42 2025 -0700 MinMax::asString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d80118117dda25be7b2b4896f19e955645c27f73 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 17:43:08 2025 -0700 TimingRole::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 284fa25c28aca998e8ce92e7b7bb927697494a13 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 17:02:27 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 646f19749b997e03dc4cbdf165cd7637010276d3 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 14:47:40 2025 -0700 FuncExpr::asString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4f73d8e7ad21feac6f41130b7b070f3e345b6fb5 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 14:04:13 2025 -0700 Vertex::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7c7ec486aaea86f6607a1ef72bb1a74dca603831 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 13:39:24 2025 -0700 Vertex::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-03-31 00:27:53 +02:00
vertex->to_string(this).c_str());
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
if (search_pred_.searchFrom(vertex)) {
2018-09-28 17:54:21 +02:00
if (isRoot(vertex)) {
setLevel(vertex, 0);
roots_->insert(vertex);
2018-09-28 17:54:21 +02:00
}
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
VertexSet visited(graph_);
VertexSet path_vertices(graph_);
2018-09-28 17:54:21 +02:00
EdgeSeq path;
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
visit(vertex, nullptr, vertex->level(), 1, visited, path_vertices, path);
2018-09-28 17:54:21 +02:00
}
}
ensureLatchLevels();
levels_valid_ = true;
relevelize_from_->clear();
2018-09-28 17:54:21 +02:00
}
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
void
Levelize::visit(Vertex *vertex,
Edge *from,
Level level,
Level level_space,
VertexSet &visited,
VertexSet &path_vertices,
EdgeSeq &path)
{
Pin *from_pin = vertex->pin();
setLevel(vertex, level);
level += level_space;
visited.insert(vertex);
path_vertices.insert(vertex);
if (from)
path.push_back(from);
if (search_pred_.searchFrom(vertex)) {
VertexOutEdgeIterator edge_iter(vertex, graph_);
while (edge_iter.hasNext()) {
Edge *edge = edge_iter.next();
Vertex *to_vertex = edge->to(graph_);
if (search_pred_.searchThru(edge)
&& search_pred_.searchTo(to_vertex)) {
if (path_vertices.find(to_vertex) != path_vertices.end())
// Back edges form feedback loops.
recordLoop(edge, path);
else if (visited.find(to_vertex) == visited.end()
&& to_vertex->level() < level)
visit(to_vertex, edge, level, level_space, visited, path_vertices, path);
}
if (edge->role() == TimingRole::latchDtoQ())
latch_d_to_q_edges_.insert(edge);
}
// Levelize bidirect driver as if it was a fanout of the bidirect load.
if (graph_delay_calc_->bidirectDrvrSlewFromLoad(from_pin)
&& !vertex->isBidirectDriver()) {
Vertex *to_vertex = graph_->pinDrvrVertex(from_pin);
if (search_pred_.searchTo(to_vertex)
&& (visited.find(to_vertex) == visited.end()
|| to_vertex->level() < level))
visit(to_vertex, nullptr, level, level_space, visited, path_vertices, path);
}
}
path_vertices.erase(vertex);
if (from)
path.pop_back();
}
2018-09-28 17:54:21 +02:00
bool
Levelize::isDisabledLoop(Edge *edge) const
{
return disabled_loop_edges_.hasKey(edge);
}
void
Levelize::setLevel(Vertex *vertex,
Level level)
{
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
debugPrint(debug_, "levelize", 2, "set level %s %d",
vertex->to_string(this).c_str(),
level);
2018-09-28 17:54:21 +02:00
if (vertex->level() != level) {
if (observer_)
observer_->levelChangedBefore(vertex);
vertex->setLevel(level);
}
Levelize rewrite commit 34f392b19f13b8a55371f0149de8fec3e76aeffa Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 13:21:45 2025 -0700 in_degree itr Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 745e11326d109dddf798843cbbefc4aac79a8bc8 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 11:00:52 2025 -0700 levelize invalid cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 501cfc7ebbc601db7f87c4c1fe70224fca904ce7 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 10:15:16 2025 -0700 refactor Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b1f0245f9ad7c7c140580e46a0e9c14742b6b448 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Apr 17 09:47:05 2025 -0700 Levelize use bit field for on_path Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1ecb617bf0894a290d6240a6150f1d31653e56fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 19:17:56 2025 -0700 levelize static alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 100c7c5a10581f52f6b5c7c2d4b5614d19549e23 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 18:15:39 2025 -0700 levelize use visited flag Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a72bdc4322c3ea9f34d0144fdf1f74acfbed39fb Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:59:25 2025 -0700 findCycleBackEdges Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 21f5e9737cfd7c41a5444592920320cfe0de559c Author: James Cherry <cherry@parallaxsw.com> Date: Wed Apr 16 15:51:17 2025 -0700 Levels find back edges from roots with fanout Signed-off-by: James Cherry <cherry@parallaxsw.com> commit ca2fe71e506c61f05401a52f3b6df3153c2e2393 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 19:26:50 2025 -0700 rm Vertex::color Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 628a973c69eab99929d32a2f5b1810dce71cbab1 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 18:45:19 2025 -0700 set max_level in Levelize::setLevel Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 874c8e10691a47fff06a89c66d66dbb63def9682 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 17:29:22 2025 -0700 levelize passes all regressions Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 790eae362a7423aa7e18432faaae7459a56976d7 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Apr 15 08:45:27 2025 -0700 levelize stats Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 26067a99a4fbc81d94dbc1022ea5d9ddd64780a0 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 22:20:56 2025 -0700 pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 635bf478117014dd22d27c4f6bd65b260e51ec35 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 18:00:03 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5fd2e9d1dd3a00494d56d967d21251f20e3a1f2c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 17:59:00 2025 -0700 rm levelizeFrom() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 078205723e2ce1f9be2e1360be80e5f9d25e978b Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 14:46:48 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 412c9a8ead792ee01e46a545c065c174e8342abc Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 13:41:07 2025 -0700 levelize level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7883e3b1bac990f33cf7fce24fe43a0614f43daa Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 12:59:45 2025 -0700 relevelize insert only after levelized Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 263da8dc56469f0408d1cfbc7c40a079bc90dc9f Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:58:55 2025 -0700 topo level init Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9de2ae3128a9ae427653c13152aa796f76277419 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 11:21:14 2025 -0700 levelize pass fast Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8ba8310850ed1cdaf718b93bf44966043ab2042d Author: James Cherry <cherry@parallaxsw.com> Date: Mon Apr 14 10:04:42 2025 -0700 constant latch en Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 8f543c3d5b261373d9b8f2da000322e529da7fb4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 19:36:23 2025 -0700 levelize topological sort Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c2ae84839edd9f6797b834d7fd4f644e77855f8 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 16:14:36 2025 -0700 levelize bfs cleanup Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 186f50e8255fcae814f98cc7f253cfd3ba9a6c1d Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 15:25:00 2025 -0700 levelize bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 1cefb185caaea64fc568c5d1ba4e7f5a961b0ba3 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Apr 13 12:16:49 2025 -0700 levelize with bfs Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5181e6b13ff38b52d13460e6abfee3202d4935c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 18:33:44 2025 -0700 findBackEdges use sorted roots Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b25ac1a7d0ec2e835cddbf53930fa5f9f2a5b299 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Apr 12 15:32:33 2025 -0700 find back edges Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-04-18 01:53:55 +02:00
max_level_ = max(level, max_level_);
if (level >= Graph::vertex_level_max)
criticalError(616, "maximum logic level exceeded");
2018-09-28 17:54:21 +02:00
}
////////////////////////////////////////////////////////////////
GraphLoop::GraphLoop(EdgeSeq *edges) :
edges_(edges)
{
}
GraphLoop::~GraphLoop()
{
delete edges_;
}
bool
GraphLoop::isCombinational() const
{
EdgeSeq::Iterator edge_iter(edges_);
while (edge_iter.hasNext()) {
Edge *edge = edge_iter.next();
name, asString -> to_string, const commit d122d05822e02dcc08c665ac6ec7513791dd7209 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Mar 27 08:58:22 2025 -0700 rebase Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9c7ae9a7ddd885ebdab102d48b3f39dc5dacf948 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Mar 25 16:21:52 2025 -0700 write_spice8 Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 2bd088f03bb2e414305232d9ebd76c9d1958ec81 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Mar 25 10:08:00 2025 -0700 liberty reader stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 86974caf063433b37ed1378e7103db4b2e55a04c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 20:25:39 2025 -0700 ConcreteLiberary/Cell/Port use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 334476e185149a90b35cdd859e0a760ec9aa242a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 20:16:08 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5130e8d44804f483d9099d48bb413a7f3362b4e1 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 15:57:14 2025 -0700 liberty parser stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d48eba88cbde9093e3eb12bcee8eb48ccd444434 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 11:16:04 2025 -0700 stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 6913fb198d642f6b05a94fb1852064706a748b81 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 11:06:17 2025 -0700 stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 371bca08ecf9bf816b7adcbb7ae1458c4073f5f8 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 10:44:31 2025 -0700 TableTemplate use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 326465920a1f4a33dbe6be35cff5ca2245b6677e Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 09:04:55 2025 -0700 use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b93a542ddfbcb5c793c9b533cbe64ea20ec08f4a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 08:59:01 2025 -0700 timingSenseString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 6c121a0ff4231b37df076a62e83832897be62ff4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 16:09:47 2025 -0700 Corner use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 07b989a5a43bf5d341aa6ba2880be663997577d5 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 16:05:43 2025 -0700 Tag::to_string() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 0b9480cc5a3fa9ef0cb1c6e8ba0d4a29de2df816 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 15:53:29 2025 -0700 PathAnalysisPt::to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a028659091e99270f7501615285730681ed59523 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 12:19:03 2025 -0700 TimingRole stati alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 495be6a57bda23d82e511282f5db7c188b32971b Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 21:36:52 2025 -0700 RiseFall/RiseFallBoth/Transition const Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c4b28adb383321b1172f4b774c7c4d9a1aee69f Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 20:38:26 2025 -0700 TimingRole const Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 54ab58ec7200d420bf3b5e709e74b652af88d508 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 14:15:07 2025 -0700 const MinMax Signed-off-by: James Cherry <cherry@parallaxsw.com> commit f70bb38df17b2ed758c7b6ba5647b7355366c0c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 13:14:31 2025 -0700 Transition::to_string(() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b3f3d67328194351fb8efac2219bcfbcec331552 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 12:33:25 2025 -0700 RiseFall::to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4046f8a376926dfde980860c51d2c5c70cf4a867 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Mar 20 09:04:10 2025 -0700 TimingRole::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit cf4dd918eccb05d459f1804ced8365c81a5c6a50 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 20:14:42 2025 -0700 MinMax::asString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d80118117dda25be7b2b4896f19e955645c27f73 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 17:43:08 2025 -0700 TimingRole::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 284fa25c28aca998e8ce92e7b7bb927697494a13 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 17:02:27 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 646f19749b997e03dc4cbdf165cd7637010276d3 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 14:47:40 2025 -0700 FuncExpr::asString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4f73d8e7ad21feac6f41130b7b070f3e345b6fb5 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 14:04:13 2025 -0700 Vertex::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7c7ec486aaea86f6607a1ef72bb1a74dca603831 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 13:39:24 2025 -0700 Vertex::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-03-31 00:27:53 +02:00
const TimingRole *role = edge->role();
2018-09-28 17:54:21 +02:00
if (!(role == TimingRole::wire()
|| role == TimingRole::combinational()
|| role == TimingRole::tristateEnable()
|| role == TimingRole::tristateDisable()))
return false;
}
return true;
}
void
name, asString -> to_string, const commit d122d05822e02dcc08c665ac6ec7513791dd7209 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Mar 27 08:58:22 2025 -0700 rebase Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9c7ae9a7ddd885ebdab102d48b3f39dc5dacf948 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Mar 25 16:21:52 2025 -0700 write_spice8 Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 2bd088f03bb2e414305232d9ebd76c9d1958ec81 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Mar 25 10:08:00 2025 -0700 liberty reader stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 86974caf063433b37ed1378e7103db4b2e55a04c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 20:25:39 2025 -0700 ConcreteLiberary/Cell/Port use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 334476e185149a90b35cdd859e0a760ec9aa242a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 20:16:08 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5130e8d44804f483d9099d48bb413a7f3362b4e1 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 15:57:14 2025 -0700 liberty parser stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d48eba88cbde9093e3eb12bcee8eb48ccd444434 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 11:16:04 2025 -0700 stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 6913fb198d642f6b05a94fb1852064706a748b81 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 11:06:17 2025 -0700 stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 371bca08ecf9bf816b7adcbb7ae1458c4073f5f8 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 10:44:31 2025 -0700 TableTemplate use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 326465920a1f4a33dbe6be35cff5ca2245b6677e Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 09:04:55 2025 -0700 use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b93a542ddfbcb5c793c9b533cbe64ea20ec08f4a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 08:59:01 2025 -0700 timingSenseString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 6c121a0ff4231b37df076a62e83832897be62ff4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 16:09:47 2025 -0700 Corner use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 07b989a5a43bf5d341aa6ba2880be663997577d5 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 16:05:43 2025 -0700 Tag::to_string() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 0b9480cc5a3fa9ef0cb1c6e8ba0d4a29de2df816 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 15:53:29 2025 -0700 PathAnalysisPt::to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a028659091e99270f7501615285730681ed59523 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 12:19:03 2025 -0700 TimingRole stati alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 495be6a57bda23d82e511282f5db7c188b32971b Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 21:36:52 2025 -0700 RiseFall/RiseFallBoth/Transition const Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c4b28adb383321b1172f4b774c7c4d9a1aee69f Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 20:38:26 2025 -0700 TimingRole const Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 54ab58ec7200d420bf3b5e709e74b652af88d508 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 14:15:07 2025 -0700 const MinMax Signed-off-by: James Cherry <cherry@parallaxsw.com> commit f70bb38df17b2ed758c7b6ba5647b7355366c0c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 13:14:31 2025 -0700 Transition::to_string(() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b3f3d67328194351fb8efac2219bcfbcec331552 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 12:33:25 2025 -0700 RiseFall::to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4046f8a376926dfde980860c51d2c5c70cf4a867 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Mar 20 09:04:10 2025 -0700 TimingRole::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit cf4dd918eccb05d459f1804ced8365c81a5c6a50 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 20:14:42 2025 -0700 MinMax::asString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d80118117dda25be7b2b4896f19e955645c27f73 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 17:43:08 2025 -0700 TimingRole::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 284fa25c28aca998e8ce92e7b7bb927697494a13 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 17:02:27 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 646f19749b997e03dc4cbdf165cd7637010276d3 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 14:47:40 2025 -0700 FuncExpr::asString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4f73d8e7ad21feac6f41130b7b070f3e345b6fb5 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 14:04:13 2025 -0700 Vertex::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7c7ec486aaea86f6607a1ef72bb1a74dca603831 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 13:39:24 2025 -0700 Vertex::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-03-31 00:27:53 +02:00
GraphLoop::report(const StaState *sta) const
2018-09-28 17:54:21 +02:00
{
name, asString -> to_string, const commit d122d05822e02dcc08c665ac6ec7513791dd7209 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Mar 27 08:58:22 2025 -0700 rebase Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9c7ae9a7ddd885ebdab102d48b3f39dc5dacf948 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Mar 25 16:21:52 2025 -0700 write_spice8 Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 2bd088f03bb2e414305232d9ebd76c9d1958ec81 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Mar 25 10:08:00 2025 -0700 liberty reader stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 86974caf063433b37ed1378e7103db4b2e55a04c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 20:25:39 2025 -0700 ConcreteLiberary/Cell/Port use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 334476e185149a90b35cdd859e0a760ec9aa242a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 20:16:08 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5130e8d44804f483d9099d48bb413a7f3362b4e1 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 15:57:14 2025 -0700 liberty parser stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d48eba88cbde9093e3eb12bcee8eb48ccd444434 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 11:16:04 2025 -0700 stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 6913fb198d642f6b05a94fb1852064706a748b81 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 11:06:17 2025 -0700 stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 371bca08ecf9bf816b7adcbb7ae1458c4073f5f8 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 10:44:31 2025 -0700 TableTemplate use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 326465920a1f4a33dbe6be35cff5ca2245b6677e Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 09:04:55 2025 -0700 use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b93a542ddfbcb5c793c9b533cbe64ea20ec08f4a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 08:59:01 2025 -0700 timingSenseString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 6c121a0ff4231b37df076a62e83832897be62ff4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 16:09:47 2025 -0700 Corner use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 07b989a5a43bf5d341aa6ba2880be663997577d5 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 16:05:43 2025 -0700 Tag::to_string() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 0b9480cc5a3fa9ef0cb1c6e8ba0d4a29de2df816 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 15:53:29 2025 -0700 PathAnalysisPt::to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a028659091e99270f7501615285730681ed59523 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 12:19:03 2025 -0700 TimingRole stati alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 495be6a57bda23d82e511282f5db7c188b32971b Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 21:36:52 2025 -0700 RiseFall/RiseFallBoth/Transition const Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c4b28adb383321b1172f4b774c7c4d9a1aee69f Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 20:38:26 2025 -0700 TimingRole const Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 54ab58ec7200d420bf3b5e709e74b652af88d508 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 14:15:07 2025 -0700 const MinMax Signed-off-by: James Cherry <cherry@parallaxsw.com> commit f70bb38df17b2ed758c7b6ba5647b7355366c0c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 13:14:31 2025 -0700 Transition::to_string(() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b3f3d67328194351fb8efac2219bcfbcec331552 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 12:33:25 2025 -0700 RiseFall::to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4046f8a376926dfde980860c51d2c5c70cf4a867 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Mar 20 09:04:10 2025 -0700 TimingRole::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit cf4dd918eccb05d459f1804ced8365c81a5c6a50 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 20:14:42 2025 -0700 MinMax::asString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d80118117dda25be7b2b4896f19e955645c27f73 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 17:43:08 2025 -0700 TimingRole::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 284fa25c28aca998e8ce92e7b7bb927697494a13 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 17:02:27 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 646f19749b997e03dc4cbdf165cd7637010276d3 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 14:47:40 2025 -0700 FuncExpr::asString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4f73d8e7ad21feac6f41130b7b070f3e345b6fb5 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 14:04:13 2025 -0700 Vertex::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7c7ec486aaea86f6607a1ef72bb1a74dca603831 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 13:39:24 2025 -0700 Vertex::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-03-31 00:27:53 +02:00
Graph *graph = sta->graph();
Report *report = sta->report();
2018-09-28 17:54:21 +02:00
bool first_edge = true;
EdgeSeq::Iterator loop_edge_iter(edges_);
while (loop_edge_iter.hasNext()) {
Edge *edge = loop_edge_iter.next();
if (first_edge)
name, asString -> to_string, const commit d122d05822e02dcc08c665ac6ec7513791dd7209 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Mar 27 08:58:22 2025 -0700 rebase Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 9c7ae9a7ddd885ebdab102d48b3f39dc5dacf948 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Mar 25 16:21:52 2025 -0700 write_spice8 Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 2bd088f03bb2e414305232d9ebd76c9d1958ec81 Author: James Cherry <cherry@parallaxsw.com> Date: Tue Mar 25 10:08:00 2025 -0700 liberty reader stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 86974caf063433b37ed1378e7103db4b2e55a04c Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 20:25:39 2025 -0700 ConcreteLiberary/Cell/Port use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 334476e185149a90b35cdd859e0a760ec9aa242a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 20:16:08 2025 -0700 leak Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 5130e8d44804f483d9099d48bb413a7f3362b4e1 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 15:57:14 2025 -0700 liberty parser stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d48eba88cbde9093e3eb12bcee8eb48ccd444434 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 11:16:04 2025 -0700 stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 6913fb198d642f6b05a94fb1852064706a748b81 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 11:06:17 2025 -0700 stringify Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 371bca08ecf9bf816b7adcbb7ae1458c4073f5f8 Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 10:44:31 2025 -0700 TableTemplate use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 326465920a1f4a33dbe6be35cff5ca2245b6677e Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 09:04:55 2025 -0700 use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b93a542ddfbcb5c793c9b533cbe64ea20ec08f4a Author: James Cherry <cherry@parallaxsw.com> Date: Mon Mar 24 08:59:01 2025 -0700 timingSenseString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 6c121a0ff4231b37df076a62e83832897be62ff4 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 16:09:47 2025 -0700 Corner use string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 07b989a5a43bf5d341aa6ba2880be663997577d5 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 16:05:43 2025 -0700 Tag::to_string() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 0b9480cc5a3fa9ef0cb1c6e8ba0d4a29de2df816 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 15:53:29 2025 -0700 PathAnalysisPt::to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit a028659091e99270f7501615285730681ed59523 Author: James Cherry <cherry@parallaxsw.com> Date: Sun Mar 23 12:19:03 2025 -0700 TimingRole stati alloc Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 495be6a57bda23d82e511282f5db7c188b32971b Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 21:36:52 2025 -0700 RiseFall/RiseFallBoth/Transition const Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4c4b28adb383321b1172f4b774c7c4d9a1aee69f Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 20:38:26 2025 -0700 TimingRole const Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 54ab58ec7200d420bf3b5e709e74b652af88d508 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 14:15:07 2025 -0700 const MinMax Signed-off-by: James Cherry <cherry@parallaxsw.com> commit f70bb38df17b2ed758c7b6ba5647b7355366c0c0 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 13:14:31 2025 -0700 Transition::to_string(() Signed-off-by: James Cherry <cherry@parallaxsw.com> commit b3f3d67328194351fb8efac2219bcfbcec331552 Author: James Cherry <cherry@parallaxsw.com> Date: Sat Mar 22 12:33:25 2025 -0700 RiseFall::to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4046f8a376926dfde980860c51d2c5c70cf4a867 Author: James Cherry <cherry@parallaxsw.com> Date: Thu Mar 20 09:04:10 2025 -0700 TimingRole::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit cf4dd918eccb05d459f1804ced8365c81a5c6a50 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 20:14:42 2025 -0700 MinMax::asString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit d80118117dda25be7b2b4896f19e955645c27f73 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 17:43:08 2025 -0700 TimingRole::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 284fa25c28aca998e8ce92e7b7bb927697494a13 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 17:02:27 2025 -0700 comment Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 646f19749b997e03dc4cbdf165cd7637010276d3 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 14:47:40 2025 -0700 FuncExpr::asString -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 4f73d8e7ad21feac6f41130b7b070f3e345b6fb5 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 14:04:13 2025 -0700 Vertex::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> commit 7c7ec486aaea86f6607a1ef72bb1a74dca603831 Author: James Cherry <cherry@parallaxsw.com> Date: Wed Mar 19 13:39:24 2025 -0700 Vertex::name -> to_string Signed-off-by: James Cherry <cherry@parallaxsw.com> Signed-off-by: James Cherry <cherry@parallaxsw.com>
2025-03-31 00:27:53 +02:00
report->reportLine(" %s", edge->from(graph)->to_string(sta).c_str());
report->reportLine(" %s", edge->to(graph)->to_string(graph).c_str());
2018-09-28 17:54:21 +02:00
first_edge = false;
}
}
} // namespace