Dmitry Stogov
|
c3fca224ff
|
Introduce IR_OP_FLAG_PINNED and IR_BB_HAS_PHI/PI/PARAM/VAR flags
|
2023-05-05 16:59:22 +03:00 |
|
Dmitry Stogov
|
47b0bb0789
|
Remove useless memset()
|
2023-05-04 01:31:34 +03:00 |
|
Dmitry Stogov
|
7441eb2171
|
Limit Alias Analyses (search above address doesn't make sense)
|
2023-04-25 14:35:20 +03:00 |
|
Dmitry Stogov
|
342be9c5c6
|
Prevent "dead" STORE elimination in case there is a GUARD beteen two STOREs
|
2023-04-25 13:58:27 +03:00 |
|
Dmitry Stogov
|
1749168078
|
Add ir_insn_len() and ir_insn_inputs_to_len() private helpers
|
2023-04-21 13:40:55 +03:00 |
|
Dmitry Stogov
|
e01c43a967
|
Simplify access to nodes with variable inputs count
|
2023-04-21 12:40:17 +03:00 |
|
Dmitry Stogov
|
bcf6c2f152
|
Set 'mflags' default value
|
2023-04-18 09:59:41 +03:00 |
|
Dmitry Stogov
|
e5c01495da
|
Use arena to allocate live_intervals and nested data structures
|
2023-04-13 13:47:16 +03:00 |
|
Dmitry Stogov
|
f85f5fd2a8
|
Remove data dependency between TAILCALL and UNREACHABLE
|
2023-04-13 02:41:28 +03:00 |
|
Dmitry Stogov
|
ba0fa44447
|
Add "const" modifiers
|
2023-03-28 13:18:12 +03:00 |
|
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 |
|