Skip to content

Add CFG transformation interface with loop unrolling - #372

Draft
giacomozanatta wants to merge 1 commit into
masterfrom
gzanatta/loop-unrolling
Draft

Add CFG transformation interface with loop unrolling#372
giacomozanatta wants to merge 1 commit into
masterfrom
gzanatta/loop-unrolling

Conversation

@giacomozanatta

Copy link
Copy Markdown
Collaborator

Description
Adds a pluggable CFGTransformation extension point in lisa-sdk, applied per-CFG between program finalization and the fixpoint, and LoopUnrolling as the first concrete transformation.

Loops are unrolled by unwinding the first k iterations of each innermost Loop as straight-line clones in front of a residual copy of the original loop.

Further content

**Demo (test conditionalCounter)

(y = 0; while (x < 100) { if (x == 90) y = 42; x++; }; return y;) with interval analysis:

config return y
baseline [0, +∞]
unroll-2 [0, +∞]
unroll-4 [0, +∞]
unroll-100 [42, 42]

Signed-off-by: Giacomo Zanatta <giacomo@Giacomos-MacBook-Pro.local>
@giacomozanatta
giacomozanatta requested a review from lucaneg as a code owner July 25, 2026 05:34
@lucaneg lucaneg moved this to PR WIP in LiSA Jul 25, 2026
@lucaneg lucaneg added this to LiSA Jul 25, 2026
@lucaneg lucaneg added the 🏗 resolution:wip Incomplete work - do not review yet label Jul 25, 2026
@giacomozanatta
giacomozanatta requested a review from Copilot July 25, 2026 05:35

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.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

@giacomozanatta
giacomozanatta marked this pull request as draft July 25, 2026 18:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🏗 resolution:wip Incomplete work - do not review yet

Projects

Status: PR WIP

Development

Successfully merging this pull request may close these issues.

3 participants