stt: create SteinerTreeBuilder class#862
Conversation
eder-matheus
commented
Jul 15, 2021
- Add a central Steiner tree API that controls the use of pdr and flute
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
| tp->branch[index[ii]].n = index[tt.branch[ii].n]; | ||
| } | ||
| free(tt.branch); | ||
| tt.branch.clear(); |
There was a problem hiding this comment.
despite what the extremely confused pdrev authors think, clear has nothing to do with free. Since the branch vector is owned by the stack allocated variable tt there is no point in clearing it.
jjcherry56
left a comment
There was a problem hiding this comment.
Well I guess Matt got his way. I would not have bothered with all of this restructuring for 2 callers of a small api. I think there is really no point in switching between flute and pdref, since pdrev with alpha=0 is equivalent (albeit poorer/slower code). The resizer will probably bypass this api at some point and use the pdrev graph instead of the horrible flute data structures.
| minl = ll; | ||
| free(bestt1.branch); | ||
| free(bestt2.branch); | ||
| bestt1.branch.clear(); |
| } else { | ||
| free(t1.branch); | ||
| free(t2.branch); | ||
| t1.branch.clear(); |
|
|
||
| free(bestt1.branch); | ||
| free(bestt2.branch); | ||
| bestt1.branch.clear(); |
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
| openroad->getDb(), | ||
| openroad->getSta(), | ||
| openroad->getGlobalRouter()); | ||
| openroad->getGlobalRouter(), |
There was a problem hiding this comment.
the global router is no longer needed since you moved the only functions it accessed
| @@ -1487,7 +1494,6 @@ Tree flutes_MD(int d, DTYPE xs[], DTYPE ys[], int s[], int acc) | |||
| } | |||
|
|
|||
| minl = (DTYPE)INT_MAX; | |||
| bestt1.branch = bestt2.branch = NULL; | |||
There was a problem hiding this comment.
this is where you need the clear
There are three callers : grt, rsz, and TR-gr |
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>
|
I would have waited until flute was removed as an alternative. |
Signed-off-by: Eder Monteiro <eder.matheus.monteiro@gmail.com>