Repository navigation
Conversation
hiyufan
marked this pull request as ready for review
October 25, 2026 11:27
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.
When every tuple output of an impure private function is unused,
RemoveUnusedOutputsreplaces the call with placeholders and drops its side effects. For example, a callee containingR.printno longer prints after the pass.Skip output pruning for an impure callee whose output-usage mask is entirely false. This conservatively preserves its call and return signature. Pure callees and impure callees with partially used outputs keep the existing pruning behavior.
Fixes #20592.
Add structural regressions for unused impure and pure calls, plus four CPU VM cases covering one/two calls and unused/partially used outputs. The execution tests compare returned tensors and exact print counts before and after the pass, and check that partial output pruning remains active.
Validation against main
e345029c, with Python 3.11 and source-built pinned TIRx/FFI dependencies:test_transform_remove_unused_outputs.py,test_transform_dead_code_elimination.py, andtest_transform_canonicalize_bindings.py: 64 passed, 1 existing xfailed.c; LLVM was not enabled.Prepared with OpenAI Codex assistance. The build and validation above were executed locally.
CI status: Windows fails during Conda environment setup, before compilation or tests, with the same
conda init/Miniforge installation errors on unchanged main. This remains an outstanding validation gap; Jenkins checks are still pending.