Repository navigation
Conversation
Run each partitioner’s edge transforms after caller-supplied passes so backends can use the standard lowering entry point. QNN contributes its existing transforms through the new hook.
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/24566
Note: Links to docs will display an error until the docs builds have been completed. ✅ No FailuresAs of commit 1b88bb9 with merge base 5f72739 ( This comment was automatically generated by Dr. CI and updates every 15 minutes. |
This was referenced Nov 3, 2026
This PR needs a
|
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Partitioner: backend-contributed edge transform passes
Backend edge passes were tied to backend-specific lowering entry points. QNN needs those passes before partitioning, because node support is checked on the transformed graph. This adds
Partitioner.transform_passes(exported_program)to the standard lowering path and moves QNN's existing pass groups onto the hook.Review order: the default no-op hook in
exir/backend/partitioner.py, pass collection / ordering inexir/program/_program.py, QNN's hook implementation and wrapper, then the generic and QNN regression tests. Caller-supplied transforms run first; partitioner transforms follow in partitioner order. APassManagercombined with contributed passes is rejected rather than silently reordered.This is PR 1 of the Stack 2 series and bases on local main
5f72739cf26ed53df21a746fb5b022fb8e4266d9. GitHub main fetch returned proxy 403, so the reachable local base was used. No #23563 cherry-pick is included.Test Plan
On this PR's branch:
The same generic regression file against unmodified main gives 4 failed / 1 passed. The contributed passes are not called, ordering assertions fail, and the mixed
PassManagerguard does not raise.The tests use the existing venvC PyTorch build and source imports from the exact branch. Device QNN inference was not rerun.
Stack (review in order)
Each PR includes the commits of the ones above it; review only its own top commits.