Skip to content

Releases: google/xls

v0.0.0-5955-ge5bcb56fb

25 Sep 07:48

Choose a tag to compare

Tell clang-tidy explicitly to consider code c++20.

Even though the -std=c++20 makes it into the
compilation DB, clang-tidy does not pick it up.

So be explicit and add it to the --extra-args on
invocation.

Thie fixes all reported [clang-diagnostic-error] that
were due to clang-tidy not recognizing c++20 constructs
and also some misc-include-cleaner warnings in which it
previously flagged some includes because it was tripping
over some other problem in the file in question.

<    21 [misc-include-cleaner]
<    20 [clang-diagnostic-error]
---
>    15 [misc-include-cleaner]

PiperOrigin-RevId: 678427605

v0.0.0-5947-gc4c12c46e

24 Sep 07:50

Choose a tag to compare

Simplify clang-tidy and explicitly list all relevant rules.

Without using wild-card options, it is easier to switch between
clang-tidy versions without getting new, unexpected findings.

This selective approach also reports less than the previous
configuration which was mostly enabling everything, then only
disabling the rules that were not helpful. Now, we're just
enabling vetted helpful rules.

Output of `xls/dev_tools/run-clang-tidy-cached.sh` is
now a more manageable

```
--- Summary --- (details in xls_clang-tidy.out)
   35 [clang-diagnostic-unused-const-variable]
   22 [bugprone-argument-comment]
   21 [misc-include-cleaner]
   20 [clang-diagnostic-error]
   15 [modernize-make-unique]
   13 [performance-unnecessary-copy-initialization]
    9 [clang-diagnostic-unused-function]
    7 [google-default-arguments]
    6 [abseil-string-find-str-contains]
    5 [readability-inconsistent-declaration-parameter-name]
    4 [google-readability-function-size]
    4 [modernize-use-bool-literals]
    3 [bugprone-use-after-move]
    3 [modernize-use-equals-default]
    3 [readability-container-size-empty]
    2 [bugprone-dangling-handle]
    2 [clang-diagnostic-thread-safety-analysis]
    2 [performance-inefficient-vector-operation]
    1 [google-explicit-constructor]
```

PiperOrigin-RevId: 678029545

v0.0.0-5937-g17d0d09be

21 Sep 07:49

Choose a tag to compare

Update apfloat to_int/to_uint to take advantage of xN type.

xN was fixed in https://github.com/google/xls/pull/1606.

PiperOrigin-RevId: 677087829

v0.0.0-5924-gb118c15f3

20 Sep 07:49

Choose a tag to compare

SimulationTarget: don't allocate global std::string objects.

... they have a non-trivial constructor. Use std::string_view
instead as they are wrapping constant strings from the .rodata
segment anyway. That also allows to make them constexpr.

Also use designated initializers for readability.

PiperOrigin-RevId: 676651162

v0.0.0-5918-g8c48bd3f9

19 Sep 07:47

Choose a tag to compare

Optimize query engines for stateless-query-engine use

Many times the only query-engine in use is the stateless query engine. This can lead to quite inefficient operation as the default query engine assumes that accessing the leaf-type-trees is pretty cheap but for stateless a new one must be constructed each time.

To avoid this all functions that unconditionally create a LeafTypeTree are made virtual so the stateless can override them. A few functions which previously unconditionally created a LTT were rewritten to not do so.

This also updates the UnionQueryEngine to use the unioned implementations of these functions.

PiperOrigin-RevId: 676170979

v0.0.0-5907-gd7bcdb1b6

18 Sep 07:49

Choose a tag to compare

Simplify sample_runner by keeping commands simple functions.

Instead of a variant that keeps track of either an executable path
or function, always have commands simply be functions.
For calling exectubable, wrap that in a function.

While at it, group the set of constants that point to the
binaries in a struct for improved readability.

Overall, no functional change, just readability improvements.

PiperOrigin-RevId: 675752356

v0.0.0-5898-gfe1187671

17 Sep 07:48

Choose a tag to compare

Automated Code Change

PiperOrigin-RevId: 675428592

v0.0.0-5889-ge9aa42c6b

15 Sep 07:49

Choose a tag to compare

[XLS] Simplify array indexing into an array operation

Even if the index isn't literal, we can convert this into a Select, creating more opportunities for conditional specialization. On the other hand, if the index is literal and is out-of-bounds, then we can always select the last entry due to the clamping behavior of ArrayIndex.

PiperOrigin-RevId: 674644265

v0.0.0-5888-gd1b26f2d3

14 Sep 07:47

Choose a tag to compare

Limit path length in BDD-query engine ImpliedNodeTernary

This operation could potentially create exceptionally long path lengths which could cause timeouts or OOMs.

PiperOrigin-RevId: 674475069

v0.0.0-5883-gb05d50021

13 Sep 07:47

Choose a tag to compare

Merge pull request #1604 from xlsynth:cdleary/2024-09-12-vast-wide-li…