Skip to content

[mlir] Replace int64_t sentinel for dynamic Sol_ArrayType size with std::optional<APInt>#142

Open
PavelKopyl wants to merge 1 commit into
mainfrom
kpv-huge-static-arrays
Open

[mlir] Replace int64_t sentinel for dynamic Sol_ArrayType size with std::optional<APInt>#142
PavelKopyl wants to merge 1 commit into
mainfrom
kpv-huge-static-arrays

Conversation

@PavelKopyl

@PavelKopyl PavelKopyl commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Copy link
Copy Markdown

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 updates the Solidity-to-MLIR lowering to align with the Sol MLIR dialect’s new representation for array sizes (replacing an int64_t dynamic-size sentinel with std::optional<llvm::APInt>), and adds regression coverage for extremely large static array sizes (up to 2**256 - 1).

Changes:

  • Switch MLIR array type construction to use std::optional<llvm::APInt> (with std::nullopt for dynamic arrays) and preserve size via getSizeOpt().
  • Add lit codegen tests that exercise uint[(2**256)-1] static arrays in both init-MLIR and EVM-MLIR output.
  • Remove two entries from the MLIR semantic test known-failures list (indicating they are expected to pass now).

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
test/mlirSemtestFailures.txt Removes two tests from the known-failures list.
test/lit/mlirCodegen/EVM/array-huge-static.sol Adds EVM MLIR codegen regression test for max-sized static array type.
test/lit/mlirCodegen/array-huge-static.sol Adds init MLIR regression test asserting correct printing of max-sized static array type.
libsolidity/codegen/mlir/SolidityToMLIR.cpp Adapts array type lowering to use std::optional<APInt> size and getSizeOpt().

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

@PavelKopyl PavelKopyl requested a review from abinavpp June 8, 2026 12:10

@abinavpp abinavpp left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

thank you!

@PavelKopyl PavelKopyl force-pushed the kpv-huge-static-arrays branch from b628ecb to bff755b Compare June 22, 2026 16:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants