-
-
Notifications
You must be signed in to change notification settings - Fork 31.9k
gh-114058: The Tier2 Optimizer #114059
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
Closed
Fidget-Spinner
wants to merge
116
commits into
python:main
from
Fidget-Spinner:tier2_abstract_interpreter
Closed
gh-114058: The Tier2 Optimizer #114059
Changes from all commits
Commits
Show all changes
116 commits
Select commit
Hold shift + click to select a range
29db898
abstract interp
Fidget-Spinner c1332cc
the abstract interpreter
Fidget-Spinner 9d85c35
cleanup
Fidget-Spinner 76cee0c
run black
Fidget-Spinner b71aa06
the optimizer
Fidget-Spinner f0e5dec
fix a whole bunch of bugs
Fidget-Spinner 52e368f
properly handle runtime self_or_null
Fidget-Spinner a273a2f
fix faulty assertion
Fidget-Spinner 60a1d79
fix build
Fidget-Spinner 7077ad5
fix all tests except test_capi and maybe test_ctypes
Fidget-Spinner 5169bf3
run black and re-enable tests
Fidget-Spinner 0929bb8
📜🤖 Added by blurb_it.
blurb-it[bot] 70ee73e
Merge remote-tracking branch 'upstream/main' into tier2_abstract_inte…
Fidget-Spinner 7d66440
check for buffer overruns
Fidget-Spinner 6b18e30
expand the ir
Fidget-Spinner 4b1dff4
fix return path
Fidget-Spinner 6a61b18
fix some refleaks
Fidget-Spinner 9e32f75
basic value numbering
Fidget-Spinner 119548e
force enable uops
Fidget-Spinner 27ce303
allow more memory
Fidget-Spinner 8915762
fix some refleaks, test value numbering
Fidget-Spinner 0974dad
fix all the warnings
Fidget-Spinner c9cd8a8
fix test
Fidget-Spinner eb56a90
fix refleak tests
Fidget-Spinner c9c7854
lint
Fidget-Spinner 3e64d1f
get rid of all compiler warnings
Fidget-Spinner df3b938
fix smelly
Fidget-Spinner 81a859b
add comments, cleanup
Fidget-Spinner 7280281
exclude abstract interp cases from C analyzer
Fidget-Spinner ac6e29f
fix c-globals check
Fidget-Spinner 9e5ef68
fix refleak
Fidget-Spinner 1f27abb
peepholing, make _CHECK_PEP_523 a guard
Fidget-Spinner c88a8c6
fix bug
Fidget-Spinner 307c66f
make things const?
Fidget-Spinner 19ce538
allow for more scratch space, but keep traces same
Fidget-Spinner c701581
Merge remote-tracking branch 'upstream/main' into tier2_abstract_inte…
Fidget-Spinner 3353996
fix upstream changes
Fidget-Spinner 543c827
apply same peephole from upstream
Fidget-Spinner 6e55480
fix eval frame
Fidget-Spinner 4e74c5b
use uops as IR
Fidget-Spinner 6829844
fix error cases
Fidget-Spinner 1de0ccb
fix leak, fix peepholer
Fidget-Spinner d2917b7
documentation, cleanup whitespace
Fidget-Spinner 553ac53
reduce mem usage
Fidget-Spinner 4555b0c
remove INIT_FAST add ignored
Fidget-Spinner 4155d84
cleanup
Fidget-Spinner e48a794
Add back peephole for constants
Fidget-Spinner 7e7ba2d
fix compiler warning
Fidget-Spinner 9aa7ccd
cut the constant factor
Fidget-Spinner d3d1e60
loop peeling
Fidget-Spinner d8d82e0
loop unrolling done
Fidget-Spinner 9692146
peel only a single loops
Fidget-Spinner fe648e2
reorder to fix macos
Fidget-Spinner 2dc0d0c
please fix mac
Fidget-Spinner b132a87
fix test
Fidget-Spinner 8a726e0
slightly reduce dispatch overhead
Fidget-Spinner 0d9df64
fixx off-by-one error
Fidget-Spinner a72d6ef
peel less aggressively, clear peepholer
Fidget-Spinner 9599113
undo loop peeling
Fidget-Spinner 7de4b37
Revert "undo loop peeling"
Fidget-Spinner acc6490
add more memory for everything
Fidget-Spinner cf59bba
peephole on failure
Fidget-Spinner 41882ce
add stats collection
Fidget-Spinner 797bc1e
Revert "add more memory for everything"
Fidget-Spinner 22da280
remove bad redefinition
Fidget-Spinner 64fa51c
Partially address Guido's review
Fidget-Spinner 262f978
remove sym_copy_type_number
Fidget-Spinner 4a9e2b4
remove symbolic value, use symbolic type
Fidget-Spinner 5868fb8
rename confusing name
Fidget-Spinner 5a3f44f
Address Guido's review, 4x function cache
Fidget-Spinner f450646
loop peel more often, add stats for loop peeling
Fidget-Spinner d226882
Add `(void)found` to silence compiler warning on L802
gvanrossum 9a3585a
convert frame and context to non-PyObjects
Fidget-Spinner 882b48c
add test for freed functions
Fidget-Spinner 551466f
cleanup
Fidget-Spinner 17a989c
general cleanups
Fidget-Spinner fcdc84c
make static
Fidget-Spinner 065b8a4
add comment by Guido
Fidget-Spinner 5be3458
Merge remote-tracking branch 'upstream/main' into tier2_abstract_inte…
Fidget-Spinner 580dd14
fix _JUMP_ABSOLUTE
Fidget-Spinner d603792
remove unsued var
Fidget-Spinner f206bd0
use iterative instead of recursive
Fidget-Spinner 17b4ae3
fix bad test on aarch64 linux
Fidget-Spinner 913d95b
remove non-compliant test
Fidget-Spinner 425b40d
fix compiler warnings
Fidget-Spinner 2c884e2
low hanging fruit in Guido's review
Fidget-Spinner d7d8e8c
cleanup more
Fidget-Spinner 47ee732
Remove abstractframe_dealloc, and frame->prev
Fidget-Spinner 01fb224
update documentation
Fidget-Spinner 63f8abd
remove peephole pass in happy case!
Fidget-Spinner 784d171
bail to tier 1 on failure, remove peepholer altogether
Fidget-Spinner 79ba2be
change error codes
Fidget-Spinner 07ba964
Merge remote-tracking branch 'upstream/main' into tier2_abstract_inte…
Fidget-Spinner 50154ad
Merge remote-tracking branch 'upstream/main' into tier2_abstract_inte…
Fidget-Spinner a0b58b1
Integrate the constant promoter
Fidget-Spinner 4573fca
fix test
Fidget-Spinner 2096a8a
try fix memleak?
Fidget-Spinner 4ad2804
Revert "try fix memleak?"
Fidget-Spinner 224f6b4
fix memleak for real
Fidget-Spinner b784617
add more constant prop tests for promoted globals
Fidget-Spinner 2983553
refactor
Fidget-Spinner 6a6b11f
Simplify codegen -- either types or consts, not both
Fidget-Spinner cfe1de0
cleanup, reduce memory usage even more
Fidget-Spinner 5ad6211
remove more memory allocations
Fidget-Spinner 73daf91
zero dynamic memory allocation
Fidget-Spinner cac3616
forgot return
Fidget-Spinner e7df93a
streamline frame creation
Fidget-Spinner 65fae9a
more cleanup
Fidget-Spinner 3fec959
fix bug in return code
Fidget-Spinner dde7d12
fix on MSVC
Fidget-Spinner 04c902b
Add back constant evaluation
Fidget-Spinner 05e93c2
cleanup
Fidget-Spinner 55f9bcb
add type annotation
Fidget-Spinner 0726766
make const zapping more error-proof
Fidget-Spinner a8adada
fix stack metadata
Fidget-Spinner ab60387
address reviews
Fidget-Spinner 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
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
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
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't see this used in the code any more.