Skip to content

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

Merged
PavelKopyl merged 2 commits into
mainfrom
kpv-huge-static-arrays
Aug 8, 2026
Merged

[mlir] Replace int64_t sentinel for dynamic Sol_ArrayType size with std::optional<APInt>#142
PavelKopyl merged 2 commits 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
@PavelKopyl
PavelKopyl force-pushed the kpv-huge-static-arrays branch from bff755b to 6fddb34 Compare July 15, 2026 14:20
@PavelKopyl
PavelKopyl changed the base branch from main to kpv-outline-copy July 15, 2026 14:40
@PavelKopyl
PavelKopyl force-pushed the kpv-huge-static-arrays branch 2 times, most recently from d3c0770 to 69664c7 Compare July 17, 2026 11:18
@PavelKopyl
PavelKopyl force-pushed the kpv-huge-static-arrays branch 2 times, most recently from f16bcaa to 38baee7 Compare August 6, 2026 23:56
@PavelKopyl
PavelKopyl requested review from abinavpp and Copilot August 7, 2026 00:05

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

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

Suppressed comments (1)

libsolidity/codegen/mlir/SolidityToMLIR.cpp:758

  • The continuation line here is indented with a tab character, which breaks the file’s consistent spaces-only indentation and can cause inconsistent formatting in different editors.
    return mlir::sol::ArrayType::get(b.getContext(), /*size=*/std::nullopt,
									 eltTy, getDataLocation(&arrTy));

@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 38baee7 to 237b64b Compare August 8, 2026 00:10
Base automatically changed from kpv-outline-copy to main August 8, 2026 00:11
@PavelKopyl
PavelKopyl merged commit 441c328 into main Aug 8, 2026
2 checks passed
@PavelKopyl
PavelKopyl deleted the kpv-huge-static-arrays branch August 8, 2026 00:45
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