Skip to content

✨ Add the quantum-ipo pipeline scheduling the interprocedural passes - #2201

Open
DRovara wants to merge 1 commit into
mlir/function-boundary-commutationfrom
mlir/quantum-ipo-pipeline
Open

✨ Add the quantum-ipo pipeline scheduling the interprocedural passes#2201
DRovara wants to merge 1 commit into
mlir/function-boundary-commutationfrom
mlir/quantum-ipo-pipeline

Conversation

@DRovara

@DRovara DRovara commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

🤖 AI text below 🤖

Description

Last of the stack replacing #1970. Builds on #2200. Once this lands, #1970 can be closed as superseded.

populateQuantumIPOPipeline runs the four passes in the order they compose, registered as the quantum-ipo pipeline. Commutation runs twice because it can expose further cancellations. The passes stay individually registered, so a caller assembling its own pipeline can pick only the ones it wants.

test_qco_quantum_ipo.cpp now holds only the scenarios that need more than one pass; everything about a single pass lives in that pass's own suite. This is the review comment on the original PR actioned across the whole series — previously most per-pass cases ran through the full pipeline, which made it hard to tell which stage established a result and let one stage mask a regression in another.

Splitting them found a real instance of exactly that: a promotion case in #2198 was passing only because the preceding pass's greedy pattern driver incidentally folded the IR first.

The changelog entry for the whole series now lives in the infrastructure PR #2194.

Testing

Three cross-stage cases live here; the complete optimization suite passes all 246 tests.

AI assistance

Code and this description were produced with Claude Code (Opus 5) and Codex, acting on my instructions and within the scope I authorized.

Checklist

  • The pull request only contains commits that are focused and relevant to this change.
  • I have added appropriate tests that cover the new/changed functionality.
  • I have updated the documentation to reflect these changes.
  • I have added entries to the changelog for any noteworthy additions, changes, fixes, or removals.
  • I have added migration instructions to the upgrade guide (if needed).
  • The changes follow the project's style guidelines and introduce no new warnings.
  • The changes are fully tested and pass the CI checks.
  • I have reviewed my own code changes.

If PR contains AI-assisted content:

  • Any agent that created, edited, or submitted GitHub content was explicitly authorized for that scope, as required by our AI Usage Guidelines.
  • Every agent-authored or agent-edited public text body begins with the visible disclosure 🤖 *AI text below* 🤖 (titles are exempt).
  • I have disclosed AI assistance in the PR description.
  • I confirm that I have personally reviewed and understood all AI-generated content, and accept full responsibility for it.

@DRovara
DRovara force-pushed the mlir/quantum-ipo-pipeline branch from 50c0eb6 to 714bb80 Compare August 20, 2026 18:33
@DRovara
DRovara force-pushed the mlir/quantum-ipo-pipeline branch from 714bb80 to 0078ba5 Compare August 24, 2026 09:33
@DRovara
DRovara force-pushed the mlir/quantum-ipo-pipeline branch from 0078ba5 to 816ffaf Compare August 24, 2026 09:52
@DRovara
DRovara force-pushed the mlir/quantum-ipo-pipeline branch from 816ffaf to 561dfe2 Compare August 25, 2026 07:50
@DRovara
DRovara force-pushed the mlir/quantum-ipo-pipeline branch from 561dfe2 to 6d97f70 Compare August 25, 2026 08:02
@codecov

codecov Bot commented Aug 25, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@DRovara
DRovara force-pushed the mlir/quantum-ipo-pipeline branch from 6d97f70 to c60282d Compare August 25, 2026 10:48
@burgholzer
burgholzer force-pushed the mlir/quantum-ipo-pipeline branch from c60282d to 161f694 Compare August 25, 2026 21:44
@DRovara
DRovara force-pushed the mlir/quantum-ipo-pipeline branch from 161f694 to 8a9261f Compare August 26, 2026 14:08
@DRovara
DRovara force-pushed the mlir/quantum-ipo-pipeline branch 2 times, most recently from d4cc42a to e919f21 Compare August 26, 2026 14:34
@DRovara
DRovara marked this pull request as ready for review August 26, 2026 14:37
@DRovara
DRovara force-pushed the mlir/quantum-ipo-pipeline branch from e919f21 to 7099447 Compare August 27, 2026 11:40
@DRovara
DRovara force-pushed the mlir/quantum-ipo-pipeline branch from 37144c5 to 3d83792 Compare August 27, 2026 13:16
@DRovara
DRovara force-pushed the mlir/quantum-ipo-pipeline branch 2 times, most recently from 1c8c185 to 58e8572 Compare August 28, 2026 08:11
@burgholzer
burgholzer force-pushed the mlir/quantum-ipo-pipeline branch from 58e8572 to f4edd2d Compare August 28, 2026 12:30
@burgholzer burgholzer added feature New feature or request c++ Anything related to C++ code MLIR Anything related to MLIR labels Aug 28, 2026
Register the interprocedural optimization sequence and cover direct and named pipeline execution.

Assisted-by: Claude Opus 5 <noreply@anthropic.com>

Assisted-by: Codex
@burgholzer
burgholzer force-pushed the mlir/quantum-ipo-pipeline branch from f4edd2d to 16f4abb Compare August 30, 2026 14:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c++ Anything related to C++ code feature New feature or request MLIR Anything related to MLIR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants