Skip to content

Add more control over levelization to optimize runtime #246

@povik

Description

@povik

While working on a buffering algorithm inside OpenROAD I've found I could improve the incremental STA runtime by a large factor (5x or similar) if I had more control over levelization. Namely I would need the following method:

  • sta_->dropVertexLevel(Vertex *vertex): invalidate the vertex level and set it to zero

This way I can arrange for incremental re-levelizalization to give some vertices of interest a lower level than they would otherwise obtain (since their level can only increase from the initial level) and my calls to sta_->findDelays(max_level); and search_->findArrivals(max_level); would be more specific.

A secondary request of lower priority is to have access to levelize_->setLevelSpace() and levelize_->invalid() since I believe those are private methods at the moment. Could the levelize_ object become part of the public interface?

I'm happy to make the changes if an approach was agreed upon.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions