⚡ Avoid redundant target-compilation liveness analysis - #2180
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
d74e283 to
08515ac
Compare
08515ac to
6d15343
Compare
6d15343 to
7d85391
Compare
|
@coderabbitai full review |
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Team Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 2 included reviews per hour; 0 remain after this review. 📝 SummarySummary by CodeRabbit
WalkthroughChangesTarget compilation cleanup
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This change removes a redundant compiler cleanup pass while preserving the remaining pipeline checks and adding fixed-point regression coverage; no actionable merge-blocking risk remains after normal checks and review. Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Description checkExplanation The description explains the change, motivation, safety impact, testing, issue context, stack, AI assistance, and checklist status. It does not explicitly list dependencies or use the template's Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai full review |
✅ Action performedFull review finished. |
7d85391 to
697c0a0
Compare
Drop the post-synthesis RemoveDeadValues pass because the second QCO cleanup establishes global liveness and native synthesis preserves value flow. Keep CSE for local cleanup and add an end-to-end fixed-point regression. Assisted-by: Codex Signed-off-by: Simon Hofmann <simon.t.hofmann@tum.de>
697c0a0 to
2da97cd
Compare
burgholzer
left a comment
There was a problem hiding this comment.
LGTM 👍🏻 it's likely that we are running these passes too often.
🤖 AI text below 🤖
Summary
Remove the final module-wide
remove-dead-valuespass from target compilation. The second QCO cleanup immediately before native synthesis already establishes global liveness, while native synthesis replaces one- and two-qubit unitary operations with native equivalents and reconnects their results.Post-synthesis CSE and final target-conformance verification remain unchanged.
Motivation
The production-shaped profile in #2134 measured the final
RemoveDeadValuespass at 7.77 seconds of a 29.93-second target-compilation run (about 26%), including 4.09 seconds in liveness analysis, forhwb10targetingFakeTorino.This PR removes that measured cleanup stage without changing placement, routing, native-synthesis choices, or target-conformance checks. It addresses the cleanup portion of #2134.
Safety and testing
The added end-to-end regression compiles a program containing a private helper call, dynamic
qco.if, and one- and two-qubit synthesis. It then rerunsRemoveDeadValuesand requires the IR to remain byte-for-byte unchanged, protecting the intended fixed point.mqt-core-mlir-unittests-compiler: 140/140 passed.uvx nox -s lint: passed.uvx nox -s cpp-lintwith LLVM/Clang 22: 0 findings.git diff --check: passed.Stack
main(includes ✨ Preserve classical control through target mapping #2179)AI assistance: Codex assisted with diagnosis, implementation, review, testing, stack maintenance, and this description.
Checklist
If PR contains AI-assisted content:
🤖 *AI text below* 🤖(titles are exempt).