Dmitry Stogov
|
6b8a33d726
|
Introduce IR Builder API
|
2023-02-10 13:34:46 +03:00 |
|
Dmitry Stogov
|
30a26eee85
|
Revisit and improve ir_build_def_use_list()
|
2022-11-23 10:22:07 +03:00 |
|
Dmitry Stogov
|
dde8309108
|
Use reference to previous instruction instead of its length
|
2022-11-18 13:59:49 +03:00 |
|
Dmitry Stogov
|
02f8b2508f
|
Add ir_unique_const_addr() to allow external hashing
|
2022-11-10 00:24:33 +03:00 |
|
Dmitry Stogov
|
3535fd2fc4
|
Fix compilation warnings and signed/unsigned mess
|
2022-11-08 23:09:35 +03:00 |
|
Dmitry Stogov
|
cc73788981
|
Fix compilation warnings
|
2022-11-08 18:17:29 +03:00 |
|
Dmitry Stogov
|
551ea4d2a0
|
Fix incorrect RSTORE flags
|
2022-11-08 15:25:01 +03:00 |
|
Dmitry Stogov
|
cc56f12f13
|
Add LICENSE and copyright notices
|
2022-11-08 11:32:46 +03:00 |
|
Dmitry Stogov
|
2ff0617db6
|
Perform iterative folding and DCE as a final pass of SCCP
|
2022-11-08 00:41:08 +03:00 |
|
Dmitry Stogov
|
364669a0a1
|
Add/fix comments
|
2022-11-02 16:27:16 +03:00 |
|
Dmitry Stogov
|
9f472c1c91
|
Add support for deoptimization and binding to multiple slots
|
2022-10-21 17:16:25 +03:00 |
|
Dmitry Stogov
|
494c9225a9
|
Refactor trace related helpers
|
2022-09-29 01:25:42 +03:00 |
|
Dmitry Stogov
|
8f5768628a
|
Initial support for tracing JIT
|
2022-09-23 12:22:59 +03:00 |
|
Dmitry Stogov
|
45fff1fe5f
|
Implement binding IR node to VAR (assign spill slot)
|
2022-09-20 11:03:25 +03:00 |
|
Dmitry Stogov
|
ba748d5bd4
|
Simplify loop exit condition
|
2022-09-20 10:42:38 +03:00 |
|
Dmitry Stogov
|
367e47ac30
|
Support for preallocated stack (ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE in PHP VM)
|
2022-09-15 15:39:15 +03:00 |
|
Dmitry Stogov
|
ad59556d85
|
Add support for binding IR nodes to "external" spill slots (e.g. PHP VM stack slots)
|
2022-09-15 15:26:43 +03:00 |
|
Dmitry Stogov
|
c249ccd7ff
|
Fixed possible invalid write into "prev_insn" after buffer reallocation in ir_next_const()
|
2022-09-14 15:37:45 +03:00 |
|
Dmitry Stogov
|
11db21a98c
|
Allow SCCP to grow use_lists (through reallocation)
|
2022-09-14 15:14:18 +03:00 |
|
Dmitry Stogov
|
65f439f198
|
Turn ir_addrtab into more general ir_hashtab
|
2022-09-07 00:04:02 +03:00 |
|
Dmitry Stogov
|
2c2a9716ab
|
Use sorted list to search for identical constants
|
2022-09-02 11:08:55 +03:00 |
|
Dmitry Stogov
|
36a5bdaf43
|
Improve support for fixed prologue/epilogue
|
2022-08-11 13:32:44 +03:00 |
|
Dmitry Stogov
|
0b062be5a4
|
Optimize ir_build_def_use_lists()
|
2022-08-10 18:39:57 +03:00 |
|
Dmitry Stogov
|
17c567f591
|
Initialize ir_ctx.strtab lazely
|
2022-08-10 16:38:40 +03:00 |
|
Dmitry Stogov
|
3c4135576a
|
Add TRAP instruction
|
2022-07-20 17:59:44 +03:00 |
|
Dmitry Stogov
|
907c22261d
|
Turn IR_TLS into "load"
|
2022-06-28 00:03:06 +03:00 |
|
Dmitry Stogov
|
fe333adfa1
|
Add ability to force fix/restore some predefied registers
|
2022-06-23 22:39:00 +03:00 |
|
Dmitry Stogov
|
3ee401efec
|
Fixed assertion condition
|
2022-06-23 16:44:44 +03:00 |
|
Dmitry Stogov
|
c9fa87e6c4
|
Support for fastcall caling convention.
(this should be reimplemented through function prototypes)
|
2022-06-23 13:14:30 +03:00 |
|
Dmitry Stogov
|
a165c43196
|
Initial support for thread local storage + optimization of some related code selection patterns
|
2022-06-22 16:02:43 +03:00 |
|
Dmitry Stogov
|
082bcf89c9
|
Use ir_ctx.fixed_regset to limit available registers
|
2022-06-21 16:13:14 +03:00 |
|
Dmitry Stogov
|
00e92483bc
|
Fix compilation warnings
|
2022-06-21 11:41:59 +03:00 |
|
Dmitry Stogov
|
be054efb97
|
Use function API intead of macros
|
2022-06-21 11:24:42 +03:00 |
|
Dmitry Stogov
|
ac5c3981e5
|
Allow LOOP_BEGIN to have multiple input back-edges
|
2022-06-16 12:31:23 +03:00 |
|
Dmitry Stogov
|
3f6c1ee0f5
|
cleanup
|
2022-06-15 22:48:19 +03:00 |
|
Dmitry Stogov
|
af4558e439
|
Allow emitting native code into preallocated buffer
|
2022-06-10 11:30:19 +03:00 |
|
Dmitry Stogov
|
5cafe50d36
|
Initial support for PHP
|
2022-06-10 00:16:29 +03:00 |
|
Dmitry Stogov
|
3212cd5bd2
|
Fix compilation warnings
|
2022-06-07 14:43:35 +03:00 |
|
Dmitry Stogov
|
03bb1d1c4d
|
Flush CPU cache
|
2022-06-07 11:53:27 +03:00 |
|
Dmitry Stogov
|
41f3e43cf7
|
cleanup
|
2022-05-27 13:18:04 +03:00 |
|
Dmitry Stogov
|
740cac8e2f
|
Move ir_ctx.unused_live_ranges to local variable
|
2022-05-25 10:57:21 +03:00 |
|
Dmitry Stogov
|
463002107a
|
Rename "gcm_blocks" into "cfg_map"
|
2022-05-25 09:33:47 +03:00 |
|
Dmitry Stogov
|
04667faf22
|
Reorder blocks according to branch probability
|
2022-05-24 12:47:39 +03:00 |
|
Dmitry Stogov
|
dd5a3a3b72
|
Add flexible support for temporary registers.
Get rid of hardcoded temporary registers (incomplete)
|
2022-05-05 22:35:39 +03:00 |
|
Dmitry Stogov
|
bb9813975e
|
Add IR_OP_FLAG_COMMUTATIVE
|
2022-04-21 11:30:05 +03:00 |
|
Dmitry Stogov
|
705f0f1e1d
|
VADDR instruction
|
2022-04-20 12:00:36 +03:00 |
|
Dmitry Stogov
|
51daf5556c
|
Initial support for ALLOCA, LOAD and STORE (incomplete)
|
2022-04-19 23:42:05 +03:00 |
|
Dmitry Stogov
|
6b60d8fba9
|
Code generation for VLOAD and VSTORE
|
2022-04-19 22:35:29 +03:00 |
|
Dmitry Stogov
|
58a993ab32
|
Fix ir_array_insert, ir_array_remove, ir_list_insert, ir_list_remove
|
2022-04-13 18:03:25 +03:00 |
|
Dmitry Stogov
|
2937993190
|
Initial import
|
2022-04-06 00:19:23 +03:00 |
|