Commit Graph

63 Commits

Author SHA1 Message Date
Anatol Belski
d0b4f108ee ir_init: Accept flags as an additional arguments
Signed-off-by: Anatol Belski <ab@php.net>
2023-03-28 00:00:45 +02:00
Anatol Belski
b701684704 ir_init: Expose min limit for constants and instructions
Signed-off-by: Anatol Belski <ab@php.net>
2023-03-28 00:00:45 +02:00
Dmitry Stogov
24e8e216a1 Remove a "reference" edge from LOOP_END to LOOP_BEGIN node. 2023-03-23 00:47:27 +03:00
Dmitry Stogov
87dbdcea0d Add necessary compensation loads for bounded nodes when enter into function through OSR entry-point 2023-03-21 13:45:37 +03:00
Dmitry Stogov
f5b7065b10 Refactor the ENTRY nodes
Now all ENTRY nodes have a "fake" input control edge.
Through this edge all of them are dominated by START node.
2023-03-17 09:02:37 +03:00
Dmitry Stogov
09409898ea Reorder instructions to use simpler and more efficient checks 2023-03-15 23:49:50 +03:00
Dmitry Stogov
f6e8a1b971 Cleanup ir_ctx.control usage 2023-03-10 16:02:53 +03:00
Dmitry Stogov
9ded5ace4b Fix executable memory mapping for Windows 2023-02-28 15:34:36 +03:00
Dmitry Stogov
9b34731d16 Fix most MSVC compilation warnings 2023-02-28 02:11:09 +03:00
Anatol Belski
964f5a0191 build: MSVC compatibility
Signed-off-by: Anatol Belski <ab@php.net>
2023-02-25 00:04:57 +01:00
Dmitry Stogov
c71076d3f0 Allow reservation stack for passing arguments 2023-02-17 15:52:26 +03:00
Dmitry Stogov
28a5714a8e Use ANSI symbols 2023-02-17 09:11:38 +03:00
Dmitry Stogov
d19685375c Add few missing IR builder macros 2023-02-13 20:55:54 +03:00
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