PathVisitor::visitFaninPaths filter check edges
Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
parent
638ffa57d4
commit
70659c2328
|
|
@ -194,7 +194,7 @@ BfsIterator::visitParallel(Level to_level,
|
|||
for (size_t k = 0; k < thread_count; k++) {
|
||||
// Last thread gets the left overs.
|
||||
size_t to = (k == thread_count - 1) ? vertex_count : from + chunk_size;
|
||||
dispatch_queue_->dispatch([=, this](int) {
|
||||
dispatch_queue_->dispatch([=, this](size_t) {
|
||||
for (size_t i = from; i < to; i++) {
|
||||
Vertex *vertex = level_vertices[i];
|
||||
if (vertex) {
|
||||
|
|
|
|||
|
|
@ -196,7 +196,7 @@ ClkSkews::findClkSkew(ConstClockSeq &clks,
|
|||
std::vector<ClkSkewMap> partial_skews(thread_count_);
|
||||
for (Vertex *src_vertex : graph_->regClkVertices()) {
|
||||
if (hasClkPaths(src_vertex)) {
|
||||
dispatch_queue_->dispatch([this, src_vertex, &partial_skews](int i) {
|
||||
dispatch_queue_->dispatch([this, src_vertex, &partial_skews](size_t i) {
|
||||
findClkSkewFrom(src_vertex, partial_skews[i]);
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1025,7 +1025,7 @@ PathGroups::makeGroupPathEnds(VertexSet &endpoints,
|
|||
MakeEndpointPathEnds(visitor, Scene::sceneSet(scenes),
|
||||
min_max, this));
|
||||
for (const auto endpoint : endpoints) {
|
||||
dispatch_queue_->dispatch( [endpoint, &visitors](int i)
|
||||
dispatch_queue_->dispatch( [endpoint, &visitors](size_t i)
|
||||
{ visitors[i].visit(endpoint); } );
|
||||
}
|
||||
dispatch_queue_->finishTasks();
|
||||
|
|
|
|||
|
|
@ -1102,9 +1102,7 @@ Search::findArrivalsSeed()
|
|||
////////////////////////////////////////////////////////////////
|
||||
|
||||
ArrivalVisitor::ArrivalVisitor(const StaState *sta) :
|
||||
PathVisitor(nullptr,
|
||||
false,
|
||||
sta)
|
||||
PathVisitor(nullptr, false, sta)
|
||||
{
|
||||
init0();
|
||||
init(true, false, nullptr);
|
||||
|
|
@ -1114,9 +1112,7 @@ ArrivalVisitor::ArrivalVisitor(const StaState *sta) :
|
|||
ArrivalVisitor::ArrivalVisitor(bool always_to_endpoints,
|
||||
SearchPred *pred,
|
||||
const StaState *sta) :
|
||||
PathVisitor(pred,
|
||||
true,
|
||||
sta)
|
||||
PathVisitor(pred, true, sta)
|
||||
{
|
||||
init0();
|
||||
init(always_to_endpoints, false, pred);
|
||||
|
|
@ -1997,11 +1993,13 @@ PathVisitor::visitFaninPaths(Vertex *to_vertex)
|
|||
VertexInEdgeIterator edge_iter(to_vertex, graph_);
|
||||
while (edge_iter.hasNext()) {
|
||||
Edge *edge = edge_iter.next();
|
||||
Vertex *from_vertex = edge->from(graph_);
|
||||
const Pin *from_pin = from_vertex->pin();
|
||||
const Pin *to_pin = to_vertex->pin();
|
||||
if (!visitEdge(from_pin, from_vertex, edge, to_pin, to_vertex))
|
||||
break;
|
||||
if (!edge->role()->isTimingCheck()) {
|
||||
Vertex *from_vertex = edge->from(graph_);
|
||||
const Pin *from_pin = from_vertex->pin();
|
||||
const Pin *to_pin = to_vertex->pin();
|
||||
if (!visitEdge(from_pin, from_vertex, edge, to_pin, to_vertex))
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue