Dmitry Stogov
|
406b08030d
|
Revisit and optimize GCM implementation
Use two different queues to schedule early and late
|
2022-11-11 16:17:56 +03:00 |
|
Dmitry Stogov
|
27fe71c344
|
Improve CFG builder and reuse ctx->cfg_map for GCM
|
2022-11-10 22:45:12 +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
|
cc56f12f13
|
Add LICENSE and copyright notices
|
2022-11-08 11:32:46 +03:00 |
|
Dmitry Stogov
|
ecb9719e8b
|
Fix "long" PHI handling
|
2022-10-12 14:01:56 +03:00 |
|
Dmitry Stogov
|
c74cac2556
|
Fix support for "long" PHIs
|
2022-10-12 11:59:49 +03:00 |
|
Dmitry Stogov
|
23caf1e0d1
|
Fix incorrect starting operand number
|
2022-09-20 10:38:59 +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
|
a80fac2cab
|
Add assertion if there are no common antecessor
(this is possible for code with multiple EMTRY-es)
|
2022-09-14 17:30:11 +03:00 |
|
Dmitry Stogov
|
11db21a98c
|
Allow SCCP to grow use_lists (through reallocation)
|
2022-09-14 15:14:18 +03:00 |
|
Dmitry Stogov
|
443ca46958
|
Fix GCM.
PHI nodes must be pinned together with CONTROL nodes, before any other DATA nodes.
|
2022-09-07 17:14:22 +03:00 |
|
Dmitry Stogov
|
76028e8855
|
Fix compilation warnings
|
2022-09-05 22:43:27 +03:00 |
|
Dmitry Stogov
|
e0e5838a4b
|
GCM optimization
|
2022-09-05 21:26:27 +03:00 |
|
Dmitry Stogov
|
d29a51a979
|
Remove unused "flags"
|
2022-09-01 13:04:54 +03:00 |
|
Dmitry Stogov
|
dd271af057
|
Speedup local scheduling by loop unrolling
|
2022-09-01 12:48:10 +03:00 |
|
Dmitry Stogov
|
6329e48b28
|
Use malloc() instead of calloc()
|
2022-08-11 19:56:42 +03:00 |
|
Dmitry Stogov
|
0637bae796
|
Avoid useless reallocation
|
2022-08-11 15:53:47 +03:00 |
|
Dmitry Stogov
|
36a5bdaf43
|
Improve support for fixed prologue/epilogue
|
2022-08-11 13:32:44 +03:00 |
|
Dmitry Stogov
|
cb4ae29a1b
|
Optimize ir_schedule()
|
2022-08-10 23:40:48 +03:00 |
|
Dmitry Stogov
|
7f50fe93b1
|
Fix incorrect sheduling
|
2022-08-09 13:06:57 +03:00 |
|
Dmitry Stogov
|
999d7d6aa9
|
Fix loop termination condition
|
2022-07-20 18:16:18 +03:00 |
|
Dmitry Stogov
|
fe333adfa1
|
Add ability to force fix/restore some predefied registers
|
2022-06-23 22:39:00 +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
|
ef3ffff81b
|
Fix CALL/1 copying. Fallback to CALL+RETURN when we can't generate code for TAILCALL.
|
2022-06-22 17:57:31 +03:00 |
|
Dmitry Stogov
|
082bcf89c9
|
Use ir_ctx.fixed_regset to limit available registers
|
2022-06-21 16:13:14 +03:00 |
|
Dmitry Stogov
|
5ef1e97261
|
Better support for unreachable basic blocks
|
2022-06-20 16:34:44 +03:00 |
|
Dmitry Stogov
|
ac5c3981e5
|
Allow LOOP_BEGIN to have multiple input back-edges
|
2022-06-16 12:31:23 +03:00 |
|
Dmitry Stogov
|
ab220de623
|
Fitsr and last instructions of BB and leading PARAM, PHI, PI, VAR instructions don't need to be scheduled.
|
2022-05-25 09:43:53 +03:00 |
|
Dmitry Stogov
|
463002107a
|
Rename "gcm_blocks" into "cfg_map"
|
2022-05-25 09:33:47 +03:00 |
|
Dmitry Stogov
|
87e9780a5b
|
Fixed handling of constant references
|
2022-05-25 09:30:26 +03:00 |
|
Dmitry Stogov
|
58b67fec18
|
Topological sort of nodes in each basic block
|
2022-05-24 18:04:38 +03:00 |
|
Dmitry Stogov
|
04667faf22
|
Reorder blocks according to branch probability
|
2022-05-24 12:47:39 +03:00 |
|
Dmitry Stogov
|
2b9e793b4e
|
Add debug options
|
2022-04-27 14:47:52 +03:00 |
|
Dmitry Stogov
|
6b60d8fba9
|
Code generation for VLOAD and VSTORE
|
2022-04-19 22:35:29 +03:00 |
|
Dmitry Stogov
|
2937993190
|
Initial import
|
2022-04-06 00:19:23 +03:00 |
|