Skip to content

Tags: google/xls

Tags

v0.0.0-9903-g32c6e63b3

Toggle v0.0.0-9903-g32c6e63b3's commit message
Add a pass to replace OneHotSelect with Select.

This change introduces `RemoveOneHotSelectPass`, a development tool pass that transforms `OneHotSelect` operations into equivalent `Select` operations. For each `OneHotSelect`, a new `Select` is created with 2^N cases, where N is the bitwidth of the selector. Each case in the new `Select` corresponds to a unique bit pattern of the selector. If multiple bits are set in a selector pattern, the corresponding `OneHotSelect` cases are combined using an OR operation. To prevent excessive node creation, the pass only operates on `OneHotSelect` nodes with a selector bitwidth of 16 or less. This pass is intended for analysis and investigation purposes.

PiperOrigin-RevId: 906592025

v0.0.0-9898-g88482aaff

Toggle v0.0.0-9898-g88482aaff's commit message
Integrate LLVM at llvm/llvm-project@bb092120f1f0

Updates LLVM usage to match
[bb092120f1f0](llvm/llvm-project@bb092120f1f0)

PiperOrigin-RevId: 905181594

v0.0.0-9894-g0b8113ada

Toggle v0.0.0-9894-g0b8113ada's commit message
Add separate, explicit read_request() and read_response() methods to …

…__xls_memory.

This enables control over the ordering of these operations, including cross-activation memory reads.

PiperOrigin-RevId: 904641917

v0.0.0-9892-gc40f6f7d9

Toggle v0.0.0-9892-gc40f6f7d9's commit message
Add decomposition for Eq and Ne operations.

This change extends the DecomposeDataflowPass to handle equality (Eq) and inequality (Ne) operations on composite types (arrays or tuples). When encountering an Eq or Ne on non-scalar operands, the pass decomposes the operation into element-wise comparisons. For Eq, the results of the element-wise comparisons are combined with an And. For Ne, the results are combined with an Or.

PiperOrigin-RevId: 904156592

v0.0.0-9875-g853597f16

Toggle v0.0.0-9875-g853597f16's commit message
Add IR conversion logic for simple impl-style procs that do not spawn…

… other procs.

PiperOrigin-RevId: 903360391

v0.0.0-9869-g09982ebc7

Toggle v0.0.0-9869-g09982ebc7's commit message
Enable the use of ProcDef-based ProcIds.

Since we are only going to use use ProcDefs with proc-scoped channels, we don't need the stack part of ProcId (PSC never populates it as originally intended anyway).

PiperOrigin-RevId: 902904668

v0.0.0-9865-g0b57caff9

Toggle v0.0.0-9865-g0b57caff9's commit message
Refactor: Use NodeNameFormat and NodeNameConcat for node naming in pa…

…sses.

This change replaces manual checks for Node::HasAssignedName() and conditional string formatting/concatenation with the new NodeNameFormat and NodeNameConcat utility functions. These utilities streamline the creation of derived node names, ensuring that names are only generated when the base node has an assigned name, or providing a fallback when specified.

PiperOrigin-RevId: 901552669

v0.0.0-9856-gd2d87dd03

Toggle v0.0.0-9856-gd2d87dd03's commit message
Drop XLS_FRIEND_TEST in favor of public FRIEND_TEST.

PiperOrigin-RevId: 900347783

v0.0.0-9850-ga0ecdeb68

Toggle v0.0.0-9850-ga0ecdeb68's commit message
Add parsing support for spawns of impl-style procs.

Spawns of legacy procs will continue to look like:
```spawn Foo(config_args);```

Spawns of impl-style procs will look like an invocation of a trait-derived function:
```foo_instance.spawn();``` or ```Foo::new(args).spawn()``` or similar. This will become a regular Invocation node and not a Spawn node. We will not need Spawn nodes anymore once we get rid of the legacy syntax.

To make this work, this change makes "spawn" not a keyword anymore.

PiperOrigin-RevId: 899782677

v0.0.0-9840-gd53059466

Toggle v0.0.0-9840-gd53059466's commit message
Automated Code Change

PiperOrigin-RevId: 899390394