Skip to content

Commit 985f91f

Browse files
committed
Merge remote-tracking branch 'upstream/master' into gpl-placement-perturbation
Signed-off-by: Drew Lewis <cannada@google.com> # Conflicts: # test/ibex_sky130hs.metrics_limits
2 parents c86c58e + 6ef56c9 commit 985f91f

102 files changed

Lines changed: 21662 additions & 1143 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

MODULE.bazel

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,3 +266,12 @@ single_version_override(
266266
patches = ["//bazel:boost_context_disable_parse_headers.patch"],
267267
version = BOOST_VERSION,
268268
)
269+
270+
# scip 9.2.3's tinycthread uses bare C11 <threads.h> names. Backport
271+
# scipopt/scip@cc917e07 (TNY_ prefix) until a fixed release lands in BCR.
272+
single_version_override(
273+
module_name = "scip",
274+
patch_strip = 1,
275+
patches = ["//bazel:scip_tinycthread_tny_prefix.patch"],
276+
version = "9.2.3",
277+
)
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
Backport scipopt/scip@cc917e07: prefix tinycthread once_flag/call_once
2+
with TNY_ to avoid clash with C11 <threads.h>. Drop when included in a
3+
BCR scip release > 9.2.3.
4+
5+
diff --git a/src/tinycthread/tinycthread.c b/src/tinycthread/tinycthread.c
6+
--- a/src/tinycthread/tinycthread.c
7+
+++ b/src/tinycthread/tinycthread.c
8+
@@ -895,7 +895,7 @@ int _tthread_timespec_get(struct timespec *ts, int base)
9+
#endif /* _TTHREAD_EMULATE_TIMESPEC_GET_ */
10+
11+
#if defined(_TTHREAD_WIN32_)
12+
-void call_once(once_flag *flag, void (*func)(void))
13+
+void TNY_call_once(TNY_once_flag *flag, void (*func)(void))
14+
{
15+
/* The idea here is that we use a spin lock (via the
16+
InterlockedCompareExchange function) to restrict access to the
17+
diff --git a/src/tinycthread/tinycthread.h b/src/tinycthread/tinycthread.h
18+
--- a/src/tinycthread/tinycthread.h
19+
+++ b/src/tinycthread/tinycthread.h
20+
@@ -447,11 +447,11 @@ int tss_set(tss_t key, void *val);
21+
typedef struct {
22+
LONG volatile status;
23+
CRITICAL_SECTION lock;
24+
- } once_flag;
25+
- #define ONCE_FLAG_INIT {0,}
26+
+ } TNY_once_flag;
27+
+ #define TNY_ONCE_FLAG_INIT {0,}
28+
#else
29+
- #define once_flag pthread_once_t
30+
- #define ONCE_FLAG_INIT PTHREAD_ONCE_INIT
31+
+ #define TNY_once_flag pthread_once_t
32+
+ #define TNY_ONCE_FLAG_INIT PTHREAD_ONCE_INIT
33+
#endif
34+
35+
/** Invoke a callback exactly once
36+
@@ -460,9 +460,9 @@ int tss_set(tss_t key, void *val);
37+
* @param func Callback to invoke.
38+
*/
39+
#if defined(_TTHREAD_WIN32_)
40+
- void call_once(once_flag *flag, void (*func)(void));
41+
+ void TNY_call_once(TNY_once_flag *flag, void (*func)(void));
42+
#else
43+
- #define call_once(flag,func) pthread_once(flag,func)
44+
+ #define TNY_call_once(flag,func) pthread_once(flag,func)
45+
#endif
46+
47+
#ifdef __cplusplus

src/cts/test/hier_insertion_delay.ok

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ Using 2 tracks default min distance between IO pins.
5050
[InitialPlace] Iter: 3 conjugate gradient residual: 0.00000012 HPWL: 1229790
5151
[InitialPlace] Iter: 4 conjugate gradient residual: 0.00000012 HPWL: 1229790
5252
[InitialPlace] Iter: 5 conjugate gradient residual: 0.00000012 HPWL: 1229790
53+
[WARNING DPL-0404] Macro inst_0 is placed but not fixed; treating it as fixed during legalization. Mark it FIXED to silence this warning.
5354
[INFO DPL-0006] Core area: 47872.02 um^2, Instances area: 1357.12 um^2, Utilization: 2.8%
5455
[INFO DPL-0005] Diamond search max displacement: +/- 500 sites horizontally, +/- 100 rows vertically.
5556
[INFO DPL-1101] Legalizing using diamond search.
@@ -64,11 +65,11 @@ Total Placement Failures: 0
6465
---------------------------------------
6566
Placement Analysis
6667
---------------------------------
67-
total displacement 9387.3 u
68-
average displacement 33.6 u
69-
max displacement 51.8 u
68+
total displacement 10261.3 u
69+
average displacement 36.8 u
70+
max displacement 56.4 u
7071
original HPWL 605.0 u
71-
legalized HPWL 641.4 u
72+
legalized HPWL 640.2 u
7273
delta HPWL 6 %
7374

7475
[INFO CTS-0050] Root buffer is CLKBUF_X3.
@@ -109,13 +110,13 @@ delta HPWL 6 %
109110
[INFO CTS-0204] A clustering solution was found from clustering size of 10 and clustering diameter of 60.
110111
[INFO CTS-0205] Better solution may be possible if either -sink_clustering_size, -sink_clustering_max_diameter, or both options are omitted to enable automatic clustering.
111112
[INFO CTS-0019] Total number of sinks after clustering: 28.
112-
[INFO CTS-0024] Normalized sink region: [(0.369143, 0.371964), (5.02957, 6.24)].
113-
[INFO CTS-0025] Width: 4.6604.
114-
[INFO CTS-0026] Height: 5.8680.
113+
[INFO CTS-0024] Normalized sink region: [(0.806143, 0.417571), (4.959, 6.37757)].
114+
[INFO CTS-0025] Width: 4.1529.
115+
[INFO CTS-0026] Height: 5.9600.
115116
Level 1
116117
Direction: Vertical
117118
Sinks per sub-region: 14
118-
Sub-region size: 4.6604 X 2.9340
119+
Sub-region size: 4.1529 X 2.9800
119120
[INFO CTS-0034] Segment length (rounded): 1.
120121
[INFO CTS-0032] Stop criterion found. Max number of sinks is 15.
121122
[INFO CTS-0035] Number of sinks covered: 28.
@@ -136,7 +137,7 @@ delta HPWL 6 %
136137
[INFO CTS-0098] Clock net "clk_regs"
137138
[INFO CTS-0099] Sinks 280
138139
[INFO CTS-0100] Leaf buffers 28
139-
[INFO CTS-0101] Average sink wire length 31.00 um
140+
[INFO CTS-0101] Average sink wire length 27.32 um
140141
[INFO CTS-0102] Path depth 2 - 3
141142
[INFO CTS-0207] Dummy loads inserted 2
142143
[INFO CTS-0033] Balancing latency for clock core

0 commit comments

Comments
 (0)