-
-
Notifications
You must be signed in to change notification settings - Fork 32k
GH-113464: A copy-and-patch JIT compiler #113465
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
Closed
Changes from 4 commits
Commits
Show all changes
459 commits
Select commit
Hold shift + click to select a range
8f6c5fe
Remove the ip_offset hack and executor local
brandtbucher e0888de
Merge branch 'main' into justin
brandtbucher 365f7a2
Get rid of ip_offset
brandtbucher 7fb79b8
Catch up with main
brandtbucher 66a5659
fixup
brandtbucher f90bd1e
Catch up with main
brandtbucher a98d4fe
Crank up the trace length for nbody
brandtbucher dc308ba
Catch up with main
brandtbucher f2b18d7
Add rough assembly dumps to jit_stencils.h
brandtbucher e2ae7bc
Make machine code disassemblies more robust
brandtbucher be88965
Go back to llvm-objdump like the good 'ol days
brandtbucher 56976b3
Remove old debugging struct
brandtbucher e33b4ab
-fno-pic
brandtbucher 3ac1946
Take a triple (and debug flag) instead of guessing
8000
brandtbucher 50731b5
Use more regular configs and fix debug builds
brandtbucher e559898
Try using cross-compiles for aarch64
brandtbucher 317ba79
Fix quotes
brandtbucher 07e03a1
apt update
brandtbucher e649059
No pkg-config
brandtbucher 11c7f44
Fix PGO and disable multiprocessing
brandtbucher 4981573
Add missing excludes
brandtbucher 1688830
Switch to enums
brandtbucher 29936e6
Catch up with main
brandtbucher ed75bd6
More cleanup
brandtbucher 8488def
Rename some things, and don't constantly regen
brandtbucher 28351a0
Clean up a bunch of stuff
brandtbucher cc5db79
Patch opargs and operands in the continuation
brandtbucher f2817bb
Fix GHCCC hack
brandtbucher fb96638
Blacken
brandtbucher 77e1487
Fix incorrect signature
brandtbucher 5e9259d
-fpic -mcmodel=small
brandtbucher ff1d6a7
-fno-pic -mcmodel=medium
brandtbucher af9f114
Catch up with main
brandtbucher c8b5073
Catch up with justin
brandtbucher 57a8019
Switch to -mcmodel=small -fpic on two platforms
brandtbucher 68a87a1
Ditto for Intel Macs
brandtbucher f44767b
ELF cleanup
brandtbucher 60d6295
More cleanup
brandtbucher d634cd3
Catch up with main
brandtbucher ca4956f
Add R_X86_64_PC32
brandtbucher 092c795
Fixes for aarch64 and i686
brandtbucher 15ba80d
ELF everywhere!
brandtbucher f2927ae
Fix some leftover bugs
brandtbucher 26abedf
More cleanup
brandtbucher 1cb4a1f
Catch up with main
brandtbucher b2e47f9
Catch up with justin
brandtbucher 1799b79
Get rid of an old workaround
brandtbucher aef1e42
Not my fault
brandtbucher 7b33e21
More cleanup
brandtbucher 32b2708
Fix relocations
brandtbucher 94448ed
Get rid of dynamic lookup
brandtbucher d08d53c
Clean things up for merge
brandtbucher 502ab9c
Get rid of some extra padding
brandtbucher f87aab2
Clean up the diff
brandtbucher 83492dd
Fix 64-bit Windows
brandtbucher c4b166f
Clean up formatting
brandtbucher 0c4e147
8000
fixup
brandtbucher 0f23be3
More cleanup
brandtbucher 8c62663
Merge branch 'main' into justin
brandtbucher 3497f8c
Add a short README
brandtbucher 0be489a
More cleanup
brandtbucher 73eb3ce
Catch up with main
brandtbucher e529809
Reenable more tests
brandtbucher 1a71c1a
Add ip_offset back
brandtbucher b13056f
Remove some comments
brandtbucher 898dcc2
Comments
brandtbucher 720878f
Load opargs and operands only when needed
brandtbucher 07fb485
Be smarter about opargs and operands
brandtbucher aa9d3b3
Rerun CI
brandtbucher 8db6838
Add error stub and clean things up more
brandtbucher e0a69d1
Split stuff into instructions and data
brandtbucher d33cc95
Fix Windows?
brandtbucher 2c78f70
...fix Windows?
brandtbucher a62e82d
More fixes...
brandtbucher 878dc80
Last try tonight
brandtbucher c440e55
Okay, for real
brandtbucher 169acb3
Fix missing ghccc
brandtbucher d6fa4ad
Clean up opargs and operands
brandtbucher 4ffe087
Reuse static const data
brandtbucher ff195e2
Clean up relocations
brandtbucher 7de5664
Get the addend from the correct segment on i686
brandtbucher 1963c66
Don't mprotect 0 bytes of memory
brandtbucher 3b54bb6
Catch up with main
brandtbucher fb3afb5
Fix tier two
brandtbucher d934ddf
Clean up the diff
brandtbucher 21a9efd
Don't overallocate data
brandtbucher 7eaec09
Fix alignment stuff
brandtbucher cdf8b1d
Catch up with main
brandtbucher 5f4e950
Catch up with main
brandtbucher c4bf874
Catch up with main
brandtbucher eda424d
Catch up with main
brandtbucher 3c816f8
Make BEFORE_WITH a uop
brandtbucher 824cb77
Catch up with main
brandtbucher 7aa253c
Fix bad merge
brandtbucher 4f60977
Clean up the diff a tiny bit
brandtbucher d65308a
Disable BEFORE_ASYNC_WITH/BEFORE_WITH/INSERT
brandtbucher fb676a6
Disable the GHCCC hack
brandtbucher 0e8a50a
Don't use ELF everywhere (WIP)
brandtbucher c997b66
Fix burn-in on LLVM 16
brandtbucher c26012b
Increase data sharing
brandtbucher 82579d2
Get rid of ghccc hack (for now)
brandtbucher 3930170
Add COFF support back
brandtbucher 71dd8be
Catch up with justin
brandtbucher d2687e4
Only compile once
brandtbucher 5774f6d
Mach-O!
brandtbucher cd05c17
Re-enable macOS job
brandtbucher 241ce0f
Catch up with main
brandtbucher 5137145
Catch up with justin
brandtbucher ffac31b
Fix types and require LLVM 16
brandtbucher 888d9ca
Un-skip some tests
brandtbucher 4611265
Catch up with main
brandtbucher 4d3a081
Catch up with justin
brandtbucher 96c3499
Catch up with main
brandtbucher cc201a9
Catch up with justin
brandtbucher 0446e98
Catch up with main
brandtbucher 6f86a0f
Remove unnecessary relocation types
brandtbucher 7a7e995
Start cleaning up the allocator
brandtbucher c4904e4
Clean up and rename stencil stuff
brandtbucher 8021c98
Remove groups and excludes, just for fun
brandtbucher f17495b
More tweaks
brandtbucher c2b5b57
fixup
brandtbucher d39d915
fixup
brandtbucher 249e12a
fixup
brandtbucher f142c2f
Rework build.py to match jit.c a bit more closely
brandtbucher 6490a71
Fix M1 builds
brandtbucher 27a50cf
Rename stuff and protect readable memory
brandtbucher 89996d9
Catch up with main
brandtbucher 58bd20c
Make the jit an optional option
brandtbucher 7bb54b5
Catch up with main
brandtbucher 7a592f0
Catch up with main
brandtbucher 1a8a63b
Catch up with justin
brandtbucher 40614ee
Skip some more aarch64 tests
brandtbucher 5bbda58
More cleanup
brandtbucher 8342f07
black + mypy
brandtbucher 925f140
Refactor JIT code: Remove deoptimize and error
brandtbucher 4ae9371
Rename trampoline to wrapper, and only warn once
brandtbucher e295407
Add schema for JSON, and clean things up
brandtbucher 3b64124
Remove deoptimize and error stubs
brandtbucher 4cb7a87
Catch up with main
brandtbucher 5bf5187
Catch up with main
brandtbucher dfface9
Enable CI temporarily
brandtbucher a9637a8
Catch up with man
brandtbucher 0466d7a
Stop using the static data hack
brandtbucher 00abf88
Comment out memory debugging code
brandtbucher a9c613e
Clean up JIT initialization and memory allocation
brandtbucher 094581a
Fix Windows madness
brandtbucher bc5ba12
Clean up some types
brandtbucher 42d96de
Get rid of runtime trampolines
brandtbucher 1fa6d7b
Fix byteorder issue
brandtbucher 01ffefc
Remove trampoline.c and update STUBS list
brandtbucher ed95f11
Catch up with main
brandtbucher 772d868
Catch up with justin
brandtbucher 7809cce
Get rid of trampolines
brandtbucher dcb290a
Use dataclasses.replace
brandtbucher 86ed6a1
Catch up with main
brandtbucher 8349218
Lots of cleanup
brandtbucher e8176b8
Don't leak memory, and don't emit wrappers!
brandtbucher c3e2aab
Clean up relocations and fix Windows nojit builds
brandtbucher 3af4a4b
More Windows fixes
brandtbucher a4a2862
More cleanup
brandtbucher 780b678
Make it possible to enable the tier 2 interpreter
brandtbucher 9901843
A bunch of cleanup (and proper debug compiles)
brandtbucher ab556e7
Don't emit unwind info (and fix __bzero)
brandtbucher c458df4
Catch up with main
brandtbucher 9c1867b
asm not needed for large -mcmodel=large
brandtbucher 882263c
Catch up with main
brandtbucher 522adc5
Catch up with main
brandtbucher 86d4fd7
fixup
brandtbucher 94f0877
Tons of cleanup... prepare to revert!
brandtbucher bfa6533
fixup
brandtbucher c5c44c8
fixup
brandtbucher 56fbb07
fixup
brandtbucher a8931fe
...fixup?
brandtbucher 1fcdc94
...fixup.
brandtbucher 64f903c
Put pyconfig.h where it needs to be
brandtbucher 4e67db4
Fix Windows/out-of-tree/hashing/verbosity
brandtbucher 78f01ae
Fix bit manipulation bugs in jit.c
brandtbucher 73ed82b
Catch up with main
brandtbucher 53c35f3
Clean up configure
brandtbucher dc55796
Catch up with main
brandtbucher 770a480
Clean up jit.vcxproj
brandtbucher 8998952
fixup
brandtbucher 3d04346
Put jit_stencils.h in the build root
brandtbucher 46063fb
fixup
brandtbucher 8addbbe
Catch up with main
brandtbucher 6b19d7c
Clean up the AArch64 stuff
brandtbucher b63610e
Break stuff up
brandtbucher 44a024a
More cleanup
brandtbucher af7606d
Merge Parser and Target
brandtbucher f238057
Turn relocations into holes quickly
brandtbucher 50b0df8
Fix AArch64 Macs.
brandtbucher 0d358ef
Final-ish cleanup
brandtbucher 323a9d6
blurb add
brandtbucher d36c9de
Enable JIT tests on pull_request
brandtbucher 7026d0c
Nevermind
brandtbucher 412c68d
Catch up with main
brandtbucher b1f1c9f
Add Include/internal/mimalloc to include path
brandtbucher e9faa27
Catch up with main
brandtbucher 4229327
Re-enable JIT CI
brandtbucher 2643439
Lots of little cleanups from code review
brandtbucher 3342775
Catch up with main
brandtbucher c1b7007
Move some logic out of try blocks
brandtbucher 20ad5f5
Clean up some type annotations
brandtbucher c518c09
Catch up with main
brandtbucher 5e229ed
Consider target when caching the JIT stencils
brandtbucher d01a2c7
Clarify why LLVM is required
brandtbucher 4266f5a
Catch up with main (and never interpret tier two on JIT builds)
brandtbucher 6ebd085
fixup
brandtbucher 2d17e22
JIT everything (even the counter thing)
brandtbucher afbc1f5
fixup
brandtbucher 5315b1d
Wrap machine code bytes.
brandtbucher 6b84187
Use better hex formatting
brandtbucher 675dd0c
Catch up with main
brandtbucher bc6763e
Clean up the LLVM utilities
brandtbucher fb62bc8
Remove duplicated code (and unnecessary sorting)
brandtbucher 344683f
Fix machine code formatting
brandtbucher 2636ece
Clean up the build script (mostly comments and renaming)
brandtbucher efbe31a
Split things up a bit more
brandtbucher 23fad98
Add missing braces to Hole's C dump
brandtbucher 44b194f
Move relocation processing to StencilGroup
brandtbucher eb5f21d
Move symbols to StencilGroup
brandtbucher 0dca530
Make some nested schema items private
brandtbucher a249170
Move more logic to from Target to StencilGroup
brandtbucher 1a956bd
Move the version check to where it's needed
brandtbucher e78341d
Catch up with main
brandtbucher 0bba20f
Remove bad asserts
brandtbucher b4474d0
Catch up with main
brandtbucher 41162ca
Rework PCbuild stuff based on PR review
8000
brandtbucher debb24d
Make JIT workflow conditional on files changed, add a dispatch button…
brandtbucher 4f656e0
Make the README more future-proof
brandtbucher 0c9c806
Set up incremental builds and fix PGO
brandtbucher 79b1bbf
Raise instead of warning, rename bit-shifting arguments, and move pat…
brandtbucher 6643773
Fix error message
brandtbucher 663ba31
Catch up with main
brandtbucher 21ac0f2
Add const qualifier
brandtbucher b352c6b
Catch up with main
brandtbucher 763f527
Actions runners are beefier now
brandtbucher b15529c
Fix some typos
brandtbucher 1cee739
Reorder ELF and COFF
brandtbucher 81d0fb6
Don't include Python/, add a --force option, and unify section/symbol…
brandtbucher 437bc53
Make _PyJIT_Compile take a trace and length
brandtbucher 26e248a
Move header comment to build.py
brandtbucher f3984e6
Clean up the schema
brandtbucher 113a1f1
Reorder some keys
brandtbucher 6648d84
Rearrange (and add) comments for patch function
brandtbucher 46bee49
Use generated pyconfig.h directory
brandtbucher c33c78f
Catch up with main
brandtbucher 4d3e207
Add back Python/ include
brandtbucher 581036e
Catch up with main
brandtbucher b00e021
Merge branch 'main' into justin
brandtbucher 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 was deleted.
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.