Repository navigation
Releases
Releases · google/xls
v0.0.0-10964-g1c4343b81
Update RemoveIdentifiersPass documentation comment. Refresh the Gemini-generated C++ header comment in `remove_identifiers_pass.h` for `RemoveIdentifiersPass` to reflect its current implementation, and regenerate the pass documentation Markdown. PiperOrigin-RevId: 1015241186
v0.0.0-10898-g8ddae8bf4
[NFC] Expose node-scoped select merging and PrioritySelect duplicate …
v0.0.0-10889-g904fe853a
Merge pull request #5190 from ecpeterson:codex/equality-arithmetic-ca…
v0.0.0-10882-gabf544fa7
Optimization to map updates in RemoveDuplicateParams() PiperOrigin-RevId: 1004361643
v0.0.0-10875-g064c4c6c7
Use XLS_REGISTER_MODULE_INITIALIZER for codegen flags handler Also change the macro to use an unquoted name since that lets us use the module initializer which gives tracing improvements. Add small test for flag registry use. PiperOrigin-RevId: 1003504320
v0.0.0-10865-g9c8e4110f
Declare the XLS[cc] __xls_memory size template parameter as int. - C++ non-type template deduction requires an exact type match, so functions templated on int N failed to deduce N when Size was unsigned long long. - Declaring Size as int in __xls_memory matches standard integer template parameters and memory aliases, allowing size deduction to succeed. - For example, template <int N> T Read(const __xls_memory<T, N>& mem, int i) can now be called directly with __xls_memory<T, 32> without specifying N. PiperOrigin-RevId: 1002706253
v0.0.0-10858-g50dffc886
Default split_next_value_selects to 4 in XLS library options. Previously, the `opt_main` and `benchmark_main` CLI flags defaulted `--split_next_value_selects` to 4, whereas `OptimizationPassOptions::split_next_value_selects` and `OptOptions::split_next_value_selects` defaulted to `std::nullopt`. As a result, C++ library callers of `OptimizeIrForTop` and `RunOptimizationPassPipeline` using default options never split `sel` nodes feeding `next_value` (such as DSLX `if`/`else if` chains updating proc state), producing worse QoR than `opt_main` on identical IR. - Introduce `kDefaultSplitNextValueSelects = 4` in `optimization_pass.h` and use it as the default in `OptimizationPassOptions`, `OptOptions`, `opt_flags.cc`, and `benchmark_main.cc` so the library and CLI defaults cannot drift. - Update `next_value_optimization_pass_test`, `proc_state_bits_shattering_pass_test`, and `optimization_pass_pipeline_test` to exercise the new default while keeping explicit test coverage of the disabled (`std::nullopt` and `0`) paths. PiperOrigin-RevId: 1001190592
v0.0.0-10845-g0b6472730
Optimize unsigned division when the divisor has a small value space. In ArithSimplificationPass, use query engine intervals to identify unsigned division operations where the divisor can take on only a small number of possible values (or powers of two). Replace these divisions with a priority select lookup table over constant division implementations/shifts or a direct variable shift. Also updates the pass to use a union of StatelessQueryEngine and PartialInfoQueryEngine (with cached state element information). PiperOrigin-RevId: 1000541029
v0.0.0-10836-gaa1b96cba
Integrate LLVM at llvm/llvm-project@2b35fb9283a4 Updates LLVM usage to match [2b35fb9283a4](https://github.com/llvm/llvm-project/commit/2b35fb9283a44aae92cb72a41d077ee8de2be7ad) PiperOrigin-RevId: 999724350
v0.0.0-10828-g406a74f76
[codegen 1.5] Don't repeat sends while a later stage is stalled. In codegen 1.5, a send can complete while a stall further down the pipeline keeps its stage from advancing. The send then fires again whenever its channel is ready, duplicating outputs. One-shot logic prevents this, but we only added it to blocks with multiple streaming sends that weren't provably mutually exclusive. Now we also add it to any streaming send that a later stage can stall. One-shot logic requires a reset, so blocks without one now get a clear error when they need it; previously, they failed IR verification or (if the bug manifested) silently duplicated sends. PiperOrigin-RevId: 998956300