Dmitry Stogov
|
63f21925b3
|
Avoid useless move
|
2022-09-20 00:26:56 +03:00 |
|
Dmitry Stogov
|
eacb9c1528
|
Avoid useless mov
|
2022-09-20 00:12:06 +03:00 |
|
Dmitry Stogov
|
5fdb89aee1
|
MOD may be converted to AND only for positive op1
|
2022-09-19 23:22:11 +03:00 |
|
Dmitry Stogov
|
5123080533
|
Fixed register allocation for MUL_OV
|
2022-09-19 22:10:29 +03:00 |
|
Dmitry Stogov
|
dc0393320e
|
Fix floating point comparison
|
2022-09-19 21:55:08 +03:00 |
|
Dmitry Stogov
|
76ad4e59a6
|
Fix live range
|
2022-09-16 12:47:03 +03:00 |
|
Dmitry Stogov
|
0eee478277
|
Support for always TRUE/FALSE guards
|
2022-09-16 12:29:55 +03:00 |
|
Dmitry Stogov
|
b519f80da5
|
More accurte fusion of address calculation
|
2022-09-16 12:05:36 +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
|
05bc456c6a
|
Move base regester selection code into ir_ref_spill_slot()
|
2022-09-07 23:47:30 +03:00 |
|
Dmitry Stogov
|
2677299bbd
|
Fix invalid type
|
2022-09-07 22:21:12 +03:00 |
|
Dmitry Stogov
|
fb0d5fd87c
|
Improve GUARD instructions support
|
2022-09-02 13:54:31 +03:00 |
|
Dmitry Stogov
|
756a1afc82
|
Better register allocation support for address and load fusion
|
2022-09-01 19:19:01 +03:00 |
|
Dmitry Stogov
|
5e4503b624
|
Fix JMP optimization for MERGE/N and last basic block
|
2022-08-31 00:01:15 +03:00 |
|
Dmitry Stogov
|
32198c00b7
|
Reimplement JMP optimization
|
2022-08-30 23:15:20 +03:00 |
|
Dmitry Stogov
|
11c03dbfb3
|
Fix call stack alignment and fastcall support
|
2022-08-30 00:42:06 +03:00 |
|
Dmitry Stogov
|
47083e0f9f
|
Improve LOAD fusion
|
2022-08-25 18:16:17 +03:00 |
|
Dmitry Stogov
|
7513098293
|
Don't generate code for dead loads
|
2022-08-23 12:35:10 +03:00 |
|
Dmitry Stogov
|
b0cba142a9
|
Merge ir_uses_fixed_reg() into ir_get_def_flags() and ir_get_use_flags()
|
2022-08-12 21:17:19 +03:00 |
|
Dmitry Stogov
|
ca109d3fc9
|
Use single live interval to handle all scratch registers clobbered by CALL
|
2022-08-11 19:56:59 +03:00 |
|
Dmitry Stogov
|
36a5bdaf43
|
Improve support for fixed prologue/epilogue
|
2022-08-11 13:32:44 +03:00 |
|
Dmitry Stogov
|
1820972a21
|
Use PHP memory manager
|
2022-08-10 17:41:14 +03:00 |
|
Dmitry Stogov
|
36561d86ce
|
Support for negative zero
Support for unused CALL result
|
2022-08-04 00:22:19 +03:00 |
|
Dmitry Stogov
|
88b8731c16
|
Fix incorrect condition codes
|
2022-08-02 13:04:03 +03:00 |
|
Dmitry Stogov
|
10db2aeb06
|
AArch64: Optimize compound assignment to fixed register (RLOAD+ADD+RSTORE)
|
2022-06-28 16:57:35 +03:00 |
|
Dmitry Stogov
|
b6b8cbb8c3
|
Fuse comparison and guard check
|
2022-06-28 16:36:06 +03:00 |
|
Dmitry Stogov
|
6b92f02a9c
|
AArch64: Fuse address calculation into LDR/STR instructions
|
2022-06-28 12:24:50 +03:00 |
|
Dmitry Stogov
|
b6605500f0
|
Improve AArch64 support
|
2022-06-28 01:43:59 +03:00 |
|
Dmitry Stogov
|
fe333adfa1
|
Add ability to force fix/restore some predefied registers
|
2022-06-23 22:39:00 +03:00 |
|
Dmitry Stogov
|
56c8b372a8
|
Replace ir_insn.emit_const by ir_insn.const_flags
|
2022-06-23 11:25:47 +03:00 |
|
Dmitry Stogov
|
2148f05392
|
Initial support for fascall calling convention (incomplete)
|
2022-06-22 23:59:56 +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
|
a165c43196
|
Initial support for thread local storage + optimization of some related code selection patterns
|
2022-06-22 16:02:43 +03:00 |
|
Dmitry Stogov
|
cb64f578eb
|
Avoid memory allocation for empty arguments list
|
2022-06-21 13:04:33 +03:00 |
|
Dmitry Stogov
|
00e92483bc
|
Fix compilation warnings
|
2022-06-21 11:41:59 +03:00 |
|
Dmitry Stogov
|
5ef1e97261
|
Better support for unreachable basic blocks
|
2022-06-20 16:34:44 +03:00 |
|
Dmitry Stogov
|
f8a23e9fe4
|
Don't protect/unprotect external code buffer
|
2022-06-17 13:22:26 +03:00 |
|
Dmitry Stogov
|
411dd20331
|
Support for code fragments with multiple entries
|
2022-06-16 23:49:27 +03:00 |
|
Dmitry Stogov
|
5fb115ab11
|
Remove LOOP_EXIT
|
2022-06-15 17:27:31 +03:00 |
|
Dmitry Stogov
|
706850f578
|
Prevent mov reg to itself
|
2022-06-15 14:37:16 +03:00 |
|
Dmitry Stogov
|
be0ecd0eb8
|
Fix LOAD/STORE with constant addresses
|
2022-06-14 22:38:35 +03:00 |
|
Dmitry Stogov
|
0a93d2e41b
|
Fix incorrect type usage
|
2022-06-14 20:51:39 +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
|
fbedabc5d8
|
cleanup
|
2022-06-07 10:17:41 +03:00 |
|
Dmitry Stogov
|
ad052c59ab
|
cleanup
|
2022-06-06 22:36:11 +03:00 |
|
Dmitry Stogov
|
17797a4a84
|
cleanup
|
2022-06-06 18:10:41 +03:00 |
|
Dmitry Stogov
|
f6b81b14e9
|
Aarch64 back-end
|
2022-06-06 15:27:25 +03:00 |
|
Dmitry Stogov
|
054a70012e
|
Aarch64 back-end (incomplete)
|
2022-06-03 12:47:02 +03:00 |
|