Skip to content

Conversation

@teqdruid
Copy link
Contributor

No description provided.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds support for ESI list types within data windows, enabling variable-length data to be transmitted through window frames. The implementation extends the existing window mechanism to handle lists similarly to arrays, with special handling for the "last" signal and size fields.

Key Changes

  • Extended window type validation and lowering to support list fields alongside arrays
  • Added canonicalization patterns for wrap/unwrap window operations
  • Updated documentation to clarify list behavior in windows (single element or fixed-size chunks)

Reviewed Changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
test/Dialect/ESI/windows.mlir Added comprehensive tests for list support in windows, including single-element and multi-element list windows, and channel integration tests
test/Dialect/ESI/errors.mlir Updated error tests to reflect new validation rules for arrays and lists with numItems specification
lib/Dialect/ESI/ESITypes.cpp Implemented validation and lowering logic for list types in windows, including special handling for "last" signal and size fields
lib/Dialect/ESI/ESIOps.cpp Updated WrapWindow operation to accept generic Type instead of only UnionType
lib/Dialect/ESI/ESIFolds.cpp Added canonicalization pattern for WrapWindow to optimize wrap-unwrap chains
lib/Dialect/ESI/Passes/ESILowerTypes.cpp Integrated canonicalization pass for window operations using createOrFold for materializations
lib/Dialect/ESI/Passes/ESILowerToHW.cpp Added WrapWindow and UnwrapWindow as legal operations in ESI-to-HW lowering
include/circt/Dialect/ESI/ESIChannels.td Updated documentation for list support in windows and changed return type of getLoweredType to Type
lib/Bindings/Python/support.py Added ListType handling in type_to_pytype function
frontends/PyCDE/test/test_esi.py Added test case for List type usage in PyCDE modules
frontends/PyCDE/src/pycde/types.py Fixed _get_value_class to be a method (removed @Property decorator) for consistency
frontends/PyCDE/src/pycde/system.py Added lower-esi-types pass to the compilation pipeline
frontends/PyCDE/src/pycde/signals.py Updated type annotation to use modern Python 3.10+ syntax (Type

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@teqdruid teqdruid merged commit 0c22d9f into main Nov 14, 2025
8 checks passed
@teqdruid teqdruid deleted the teqdruid/list branch November 14, 2025 23:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants