Miodrag Milanović
4a6bd6a2fe
Merge pull request #5762 from YosysHQ/revert-5758-lofty/abc-refactor-1
...
Revert "abc: remove -fast [sc-269]"
2026-03-18 17:57:53 +00:00
Lofty
f9d930ba5a
Revert "abc: remove -fast [sc-269]"
2026-03-18 17:55:17 +00:00
Lofty
e05ed6b850
Merge pull request #5758 from YosysHQ/lofty/abc-refactor-1
...
abc: remove -fast [sc-269]
2026-03-18 15:09:36 +00:00
Lofty
18a7c54ebd
Merge pull request #5756 from YosysHQ/lofty/abc9-refactor-2
...
abc9: cleanup commented code [sc-269]
2026-03-18 14:46:06 +00:00
Lofty
926814f1e4
abc9: cleanup commented code
2026-03-18 14:16:31 +00:00
Lofty
0ea739b7d9
abc: remove -fast
2026-03-18 14:15:42 +00:00
Lofty
150860c1c3
Merge pull request #5755 from YosysHQ/lofty/abc9-refactor-1
...
abc9_exe: fix typo
2026-03-18 12:25:44 +00:00
Lofty
e78690fc47
abc9_exe: fix typo
2026-03-18 11:44:13 +00:00
Emil J
c8f715fed8
Merge pull request #5664 from rocallahan/parallel-opt-clean
...
Parallelize `opt_clean` pass
2026-03-16 09:52:34 +00:00
Miodrag Milanović
06264cdb2e
Merge pull request #5746 from IAmMarcelJung/fabulous/add_frame_config_mux_bels
...
fabulous: add frame_config_mux BEls
2026-03-16 08:21:01 +00:00
KrystalDelusion
1111a401f7
Merge pull request #5750 from calewis/return_things
...
Fix missing return in NDEBUG case
2026-03-13 22:07:28 +00:00
Drew Lewis
4251cd69ed
Fix missing return in NDEBUG case
...
Signed-off-by: Drew Lewis <cannada@google.com>
2026-03-13 19:51:49 +00:00
Marcel Jung
49ecb1ac11
fabulous: add frame_config_mux BEls
2026-03-12 16:05:21 +01:00
Lofty
4716f4410f
Merge pull request #5741 from YosysHQ/lofty/quicklogic-mul-bugfix
...
synth_quicklogic: fix small multiplier inference
2026-03-11 11:47:46 +00:00
Lofty
53939bd3ba
synth_quicklogic: fix small multiplier inference
2026-03-11 11:14:09 +00:00
Catherine
18d94fe9a4
Merge pull request #5740 from kivikakk/push-utvloulmsuqy
...
cxxrtl: Suppress another un/signed comparison warning!
2026-03-11 10:27:27 +00:00
Asherah Connor
5c74446e57
cxxrtl: Suppress another un/signed comparison warning!
2026-03-11 20:50:09 +11:00
Catherine
4d725ee84d
Merge pull request #5739 from kivikakk/push-nsqznnrrssrn
...
cxxrtl: Suppress un/signed comparison warning; this is positive
2026-03-11 09:00:22 +00:00
Asherah Connor
c5c104f560
cxxrtl: Suppress un/signed comparison warning; this is positive
2026-03-11 18:35:48 +11:00
Miodrag Milanović
de99d67bbd
Merge pull request #5733 from YosysHQ/update_abc
...
Update ABC as per 2026-03-09
2026-03-09 12:42:13 +00:00
Miodrag Milanovic
fea0d18c0a
Update ABC as per 2026-03-09
2026-03-09 13:04:45 +01:00
Emil J
2f1cdc2df9
Merge pull request #5728 from povik/tcl-set-result
...
Replace deprecated Tcl API to fix use-after-free
2026-03-06 13:36:48 +00:00
Martin Povišer
167c6c4585
Replace deprecated Tcl API to fix use-after-free
...
Under Tcl 9.0 the Tcl_SetResult utility is a macro:
#define Tcl_SetResult(interp, result, freeProc) \
do { \
const char *__result = result; \
Tcl_FreeProc *__freeProc = freeProc; \
Tcl_SetObjResult(interp, Tcl_NewStringObj(__result, -1)); \
if (__result != NULL && __freeProc != NULL && __freeProc != TCL_VOLATILE) { \
if (__freeProc == TCL_DYNAMIC) { \
Tcl_Free((char *)__result); \
} else { \
(*__freeProc)((char *)__result); \
} \
} \
} while(0)
Temporaries constructed as part of the 'result' expression will be
dropped before the 'result' pointer is used. What was safe when
Tcl_SetResult was a function isn't safe with the macro definition.
Transition away from deprecated SetResult to calling
SetObjResult/MewStringObj directly.
2026-03-06 11:52:17 +01:00
Lofty
050483a6b2
Merge pull request #5698 from YosysHQ/lofty/analogdevices
...
synth_analogdevices: synthesis for Analog Devices EFLX FPGAs [sc-273]
2026-03-06 08:57:59 +00:00
Miodrag Milanovic
602f3fd1a5
Add missing EOL
2026-03-06 09:10:55 +01:00
Miodrag Milanovic
52533b0d1c
Update opt_lut_ins and stat for analogdevices and remove ecp5
2026-03-06 09:10:36 +01:00
Robert O'Callahan
9c51ba1b09
Reduce opt_clean parallelism
2026-03-06 02:20:16 +00:00
Robert O'Callahan
8d8c05b338
Fix OptCleanPass usage of CleanRunContext to avoid constructing extra KeepCache and ParallelDispatchThreadPool
2026-03-06 02:20:16 +00:00
Robert O'Callahan
32f5044eaf
Clarify "Not passing module as function argument" comment
...
This correct in terms of intent, it's just not fully enforced due to const laundering.
2026-03-06 02:20:16 +00:00
Emil J. Tywoniak
70cc2d67fd
opt_clean: refactor
2026-03-06 02:20:14 +00:00
Robert O'Callahan
1260fda83a
Add 'init' attributes to RTLIL fuzzing
2026-03-06 02:20:08 +00:00
Robert O'Callahan
cdfc586f18
Add unit tests for ConcurrentWorkQueue
2026-03-06 02:20:08 +00:00
Robert O'Callahan
1e96328ede
Add some tests for ShardedHashSet
2026-03-06 02:20:08 +00:00
Robert O'Callahan
3910d569da
Add unit tests for ConcurrentQueue and ThreadPool
2026-03-06 02:20:08 +00:00
Robert O'Callahan
ac55935a68
Add unit-tests for ParallelDispatchThread and friends
2026-03-06 02:20:08 +00:00
Robert O'Callahan
3603cd52a0
Pass the module Subpool to rmunused_module_signals and parallelize that function
2026-03-06 02:20:08 +00:00
Robert O'Callahan
7f3b11e56b
Add test that connects a wire with init to a constant
2026-03-06 02:20:08 +00:00
Robert O'Callahan
19a7c8fcf3
Pass the module Subpool to rmunused_module_cells and parallelize that function
2026-03-06 02:20:08 +00:00
Robert O'Callahan
8e044d1045
Pass the module Subpool to rmunused_module_init and parallelize that function
2026-03-06 02:20:06 +00:00
Robert O'Callahan
a7437c636d
Pass the toplevel thread pool to rmunused_module, create a Subpool, and parallelize remove_temporary_cells
2026-03-06 02:05:46 +00:00
Robert O'Callahan
887c32cb54
Create a toplevel ParallelDispatchThreadPool and parallelize keep_cache_t::scan_module() with it
2026-03-06 02:05:46 +00:00
Robert O'Callahan
72a21fe01d
Introduce RmStats struct to encapsulate removal statistics
...
Turns out this is not strictly necessary for this PR but it's
still a good thing to do and makes it clearer that the stats
are not modified in a possibly racy way.
2026-03-06 02:05:43 +00:00
Robert O'Callahan
c2bb7d6a82
Make keep_cache_t process all modules up-front instead of on-demand
...
We will want to query `keep_cache` from parallel threads. If we compute
the results on-demand, that means we need synchronization for cache
access in those queries, which adds complexity and overhead. Instead, prefill
the cache with the status of all relevant modules. Note that this doesn't
actually do more work --- we always consult `keep_cache` for all cells of
all selected modules, so scanning all those cells and determining the kept
status of all dependency modules is always required.
Later in this PR we're going to parallelize `scan_module` itself, and that's also
much easier to do when no other parallel threads are running.
2026-03-06 02:05:04 +00:00
Robert O'Callahan
b42bb05b63
Parallelize Design::check()
2026-03-06 02:03:21 +00:00
Robert O'Callahan
e2166c4684
Parallelize collect_garbage()
2026-03-06 02:03:21 +00:00
Robert O'Callahan
5ff7d344c9
Add FfInitVals::set_parallel() method
...
We'll use this later in the PR.
2026-03-06 02:03:21 +00:00
Robert O'Callahan
fe329a0e14
Add MonotonicFlag
...
We'll use this later in the PR.
2026-03-06 02:03:21 +00:00
Robert O'Callahan
e71da96314
Add ConcurrentWorkQueue
...
We'll use this later in the PR.
2026-03-06 02:03:21 +00:00
Robert O'Callahan
ab238c3145
Add ShardedHashSet
...
We'll use this later in the PR.
2026-03-06 02:03:21 +00:00
Robert O'Callahan
87521df534
Add ShardedVector
...
We'll use this later in the PR.
2026-03-06 02:03:21 +00:00