Skip to content

lowering: propagate snapshot pop success values in const folding#9817

Open
nivanovvv wants to merge 1 commit intostarkware-libs:mainfrom
nivanovvv:lowering-snapshot-pop-success-propagation
Open

lowering: propagate snapshot pop success values in const folding#9817
nivanovvv wants to merge 1 commit intostarkware-libs:mainfrom
nivanovvv:lowering-snapshot-pop-success-propagation

Conversation

@nivanovvv
Copy link
Copy Markdown

@nivanovvv nivanovvv commented Apr 2, 2026

Propagate remaining snapshot and popped value info for snapshot pop success arms, enabling follow-up snapshot pops to const-fold into known branches.


Note

Medium Risk
Touches compiler const-folding logic for array_snapshot_pop_front/back, which could change lowering behavior if snapshot/boxed value propagation is incorrect. Scope is limited and covered by a new regression test.

Overview
Const folding now propagates success-arm outputs for array_snapshot_pop_front/array_snapshot_pop_back: it tracks the remaining snapshot as a Snapshot(Array(..)) and tracks the popped element as a boxed snapshot value, enabling subsequent pops to be folded based on updated snapshot state.

Adds a regression test ensuring a second array_snapshot_pop_front after a successful first pop can be optimized into the known None branch by recognizing the now-empty remaining snapshot.

Written by Cursor Bugbot for commit ee725f8. This will update automatically on new commits. Configure here.

@reviewable-StarkWare
Copy link
Copy Markdown

This change is Reviewable

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.

2 participants