-
Notifications
You must be signed in to change notification settings - Fork 3.8k
[Unity][Transform] Replace eligible operators with in-place versions in dataflow blocks #16129
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
55 commits
Select commit
Hold shift + click to select a range
4ae4086
Implement basic analyses
slyubomirsky 2ffec3a
Fix typo
slyubomirsky 3faf914
Add tests for analyses
slyubomirsky 3cc3c9b
Include in-place analysis
slyubomirsky 441ead2
Return the lists instead
slyubomirsky 71d32a1
Update python binding
slyubomirsky 5a3d3f2
No need to assume *pure* functions capture all values ever passed to …
slyubomirsky 632c773
Improve handling of tuples in mystery call case
slyubomirsky d97ab92
Corrections to inplace checking
slyubomirsky 3f099df
Add test case for mystery value
slyubomirsky 2018980
typo
slyubomirsky cfe03d1
Add inplace test case, correct minor issues
slyubomirsky 945c206
Consider also using larger tensors to store smaller ones
slyubomirsky 0e6027a
Check call args against any possible target sinfo, also check tensor …
slyubomirsky 693bc82
Handle output vars and tuple get item
slyubomirsky bcc8513
Add legalization for in-place functions
slyubomirsky eb7a004
No need to update the NoAlias attribute, actually
slyubomirsky 2e9315d
Fix TIR transformation, add tests for inline transformation
slyubomirsky 5616789
Only find candidates from supported ops and list _all_ feasible argum…
slyubomirsky dd3c882
Implement basic transformation pass
slyubomirsky b8f7359
Use a module pass so wider changes are visible, reorganize
slyubomirsky d8a2f4d
Have an end-to-end test case for the in-place transformation
slyubomirsky 87e2a41
Rebase fixes and use GetBoundValue instead of reimplementing it
slyubomirsky 6e7d447
Let's just use 'inplace' everywhere
slyubomirsky 03fb2a5
Reorganize code and add more documentation
slyubomirsky bbd1d53
Include proper bounds check
slyubomirsky 47639e2
Trailing whitespace
slyubomirsky ba7fb3d
Need a trailing newline
slyubomirsky ed7595a
Remove unused imports
slyubomirsky 77eab79
Add docstrings for exposed inner functions
slyubomirsky 71e4d71
Reformat docstrings to appease the linter
slyubomirsky 17724be
C++ stylistic changes
slyubomirsky a329915
Treat args as mystery values by default, do not allow overwriting
slyubomirsky 29bcdfb
Formatting
slyubomirsky cf396a1
Clarify pass description
slyubomirsky b6c7c36
Add check to ensure that testing functions are used only in a testing…
slyubomirsky aad9aab
Improve size match check readability per review suggestions
slyubomirsky 1470d24
Improve the size match check per review suggestions (use PrimExprs)
Lunderberg af5fd05
Treat non-dataflow vars as living past the end of the block in all cases
slyubomirsky 23a4d0d
Clarify notion of size in comment
slyubomirsky c604d3b
Remove commented-out code
slyubomirsky 3060ea1
Assume any op that returns a tuple is returning a fresh one (exceptio…
slyubomirsky 3107ce4
Add full structural equality check in large test case
slyubomirsky 585a748
Fix parser roundtripping bug with call_tir_inplace
slyubomirsky c5d2871
Refactor tests to ensure maps are nonempty
slyubomirsky 9dc2e52
Use .empty() where it's more reasonable
slyubomirsky b9d01b7
linting changes
slyubomirsky 8dd70df
Flipped the check by accident
slyubomirsky 285c7d6
Remove debug print
slyubomirsky 81b1fcb
Factor out data structure for representing matches and match opportun…
slyubomirsky cc48b25
Style fix
slyubomirsky a3683e7
Use the analyzer to handle dynamic cases too
slyubomirsky 463893f
Whitespace
slyubomirsky 559f197
Use BlockBuilder APIs more to avoid re-normalizing
slyubomirsky d9a7973
Check for expired vars at start of loop so that the use of continue d…
slyubomirsky File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.