Alan Wu
|
56ce40e8be
|
Only compile iseqs with simple parameters. Enable get_local_wc1
|
2021-10-20 18:19:28 -04:00 |
|
Maxime Chevalier-Boisvert
|
e85e0e2fa9
|
Commit WIP setlocal_WC_1 implementation
|
2021-10-20 18:19:28 -04:00 |
|
Maxime Chevalier-Boisvert
|
439e1089b7
|
Implement opt_le, opt_ge in ujit
|
2021-10-20 18:19:28 -04:00 |
|
Maxime Chevalier-Boisvert
|
020f745041
|
Fix overflow check in ujit
|
2021-10-20 18:19:28 -04:00 |
|
Maxime Chevalier-Boisvert
|
6a29131439
|
Implement Ruby-to-Ruby calls in ujit (opt_send_without_block)
|
2021-10-20 18:19:28 -04:00 |
|
Maxime Chevalier-Boisvert
|
53bd13edf3
|
Implement opt_and in ujit
|
2021-10-20 18:19:28 -04:00 |
|
Maxime Chevalier-Boisvert
|
2e561ff255
|
Restore interpreter regs in ujit hook. Implement leave bytecode.
|
2021-10-20 18:19:28 -04:00 |
|
Alan Wu
|
3c7251b41b
|
Tally instructions when taking side exists for --ujit-stats
shopify/ruby#29
Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
|
2021-10-20 18:19:28 -04:00 |
|
Maxime Chevalier-Boisvert
|
81c57ab9b8
|
Reduce size of ctx_t
|
2021-10-20 18:19:28 -04:00 |
|
Maxime Chevalier-Boisvert
|
a14015e9b5
|
Report unknown --ujit-* options
|
2021-10-20 18:19:28 -04:00 |
|
Alan Wu
|
b7f93e81df
|
Implement --ujit-stats and instructoin counting
VM and ujit instruction counting in debug builds.
shopify/ruby#19
|
2021-10-20 18:19:27 -04:00 |
|
Maxime Chevalier-Boisvert
|
36232a48a6
|
Set T_FIXNUM type tags in opt_plus, opt_minus
|
2021-10-20 18:19:27 -04:00 |
|
Maxime Chevalier-Boisvert
|
c61238a276
|
Optimize putobject codegen
|
2021-10-20 18:19:27 -04:00 |
|
Maxime Chevalier-Boisvert
|
e7909467df
|
Eliminate type checks in opt_lt
|
2021-10-20 18:19:27 -04:00 |
|
Maxime Chevalier-Boisvert
|
63e85de33a
|
Fix bug, block added with wrong blockid.
|
2021-10-20 18:19:27 -04:00 |
|
Maxime Chevalier-Boisvert
|
dea4db16c0
|
Add support for multiple versions per block
|
2021-10-20 18:19:27 -04:00 |
|
Maxime Chevalier-Boisvert
|
0a42428098
|
Implement branchif in ujit
|
2021-10-20 18:19:27 -04:00 |
|
Maxime Chevalier-Boisvert
|
0a6e824ad2
|
Prototype type-specialization for temp values
|
2021-10-20 18:19:27 -04:00 |
|
Maxime Chevalier-Boisvert
|
cf4021ca78
|
Take VM lock in branch_stub_hit(), fix ractor deadlock.
|
2021-10-20 18:19:27 -04:00 |
|
Maxime Chevalier-Boisvert
|
37ad374607
|
Added gen_direct_jump() for unary branches
|
2021-10-20 18:19:27 -04:00 |
|
Maxime Chevalier-Boisvert
|
187435c117
|
Complete refactoring to eliminate recursion in ujit's compilation
|
2021-10-20 18:19:27 -04:00 |
|
Maxime Chevalier-Boisvert
|
02a9700475
|
End current block after opt_send_without_block
|
2021-10-20 18:19:27 -04:00 |
|
Maxime Chevalier-Boisvert
|
79331368b9
|
Added block end index
|
2021-10-20 18:19:27 -04:00 |
|
Maxime Chevalier-Boisvert
|
59eb98fbaa
|
Fix ujit cc/cme invalidation code for opt_send_without_block
|
2021-10-20 18:19:27 -04:00 |
|
Maxime Chevalier-Boisvert
|
4a57107696
|
Sketch code to invalidate basic blocks. Rename version_t to block_t.
|
2021-10-20 18:19:27 -04:00 |
|
Maxime Chevalier-Boisvert
|
92e9b24586
|
Keep track of incoming branches in ujit
|
2021-10-20 18:19:27 -04:00 |
|
Maxime Chevalier-Boisvert
|
2cf32e5505
|
Refactor ujit logic for generating iseq entry points
|
2021-10-20 18:19:27 -04:00 |
|
Maxime Chevalier-Boisvert
|
ef08af9376
|
Progress on code invalidation
|
2021-10-20 18:19:27 -04:00 |
|
Maxime Chevalier-Boisvert
|
3a74011ff8
|
Introduce version_t struct. Will be needed for code invalidation.
|
2021-10-20 18:19:27 -04:00 |
|
Maxime Chevalier-Boisvert
|
a251059070
|
Fix hash map key issue
|
2021-10-20 18:19:27 -04:00 |
|
Maxime Chevalier-Boisvert
|
7e60ce357b
|
Fix uint cast bug caught by Alan
|
2021-10-20 18:19:26 -04:00 |
|
Maxime Chevalier-Boisvert
|
2cc0db12fe
|
Refactorings in ujit. Implement Ruby jump instruction.
|
2021-10-20 18:19:26 -04:00 |
|
Maxime Chevalier-Boisvert
|
1744c15578
|
Avoid generating redundant interpreter exit code after branches
|
2021-10-20 18:19:26 -04:00 |
|
Maxime Chevalier-Boisvert
|
97cffcf79a
|
Fix sneaky ujit side-exit bug. Reduce ujit call threshold to 1.
|
2021-10-20 18:19:26 -04:00 |
|
Maxime Chevalier-Boisvert
|
542f2ba09e
|
Use a versioning context when compiling blocks
|
2021-10-20 18:19:26 -04:00 |
|
Maxime Chevalier-Boisvert
|
df16bf97ec
|
Split out context object into jitstate_t and ctx_t
|
2021-10-20 18:19:26 -04:00 |
|
Maxime Chevalier-Boisvert
|
5e39d83fbd
|
Split out compile_entry() from compile_block()
|
2021-10-20 18:19:26 -04:00 |
|
Maxime Chevalier-Boisvert
|
4592ef9d76
|
Fixed one bug in compile_block.
|
2021-10-20 18:19:26 -04:00 |
|
Maxime Chevalier-Boisvert
|
e9344ae408
|
Stub logic working for fib test, but still crashing in other cases
|
2021-10-20 18:19:26 -04:00 |
|
Maxime Chevalier-Boisvert
|
7d7e58d352
|
Implement branch stub logic
|
2021-10-20 18:19:26 -04:00 |
|
Maxime Chevalier-Boisvert
|
40b70ef7c7
|
WIP branch generation code
|
2021-10-20 18:19:26 -04:00 |
|
Maxime Chevalier-Boisvert
|
bd7cc9ed98
|
Thread insn_idx through context object
|
2021-10-20 18:19:26 -04:00 |
|
Maxime Chevalier-Boisvert
|
8ae354e9be
|
Implemented opt_lt. Prelude to branch instructions.
|
2021-10-20 18:19:26 -04:00 |
|
Maxime Chevalier-Boisvert
|
20f5b7426e
|
Start implementing BBV primitives
|
2021-10-20 18:19:26 -04:00 |
|
Maxime Chevalier-Boisvert
|
f7717b1d46
|
Start refactoring JIT engine
|
2021-10-20 18:19:26 -04:00 |
|
Maxime Chevalier-Boisvert
|
f761e9ee64
|
Move code into ujit_iface.c
|
2021-10-20 18:19:26 -04:00 |
|
Maxime Chevalier-Boisvert
|
e4c65ec49c
|
Refactor uJIT code into more files for readability
|
2021-10-20 18:19:26 -04:00 |
|