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
|
fc20369695
|
Use 64-bit instructions for ir_bitset if possible
|
2022-08-11 00:17:58 +03:00 |
|
Dmitry Stogov
|
cb4ae29a1b
|
Optimize ir_schedule()
|
2022-08-10 23:40:48 +03:00 |
|
Dmitry Stogov
|
0b062be5a4
|
Optimize ir_build_def_use_lists()
|
2022-08-10 18:39:57 +03:00 |
|
Dmitry Stogov
|
1820972a21
|
Use PHP memory manager
|
2022-08-10 17:41:14 +03:00 |
|
Dmitry Stogov
|
17c567f591
|
Initialize ir_ctx.strtab lazely
|
2022-08-10 16:38:40 +03:00 |
|
Dmitry Stogov
|
825d18a5cf
|
Reprder conditions
|
2022-08-10 15:37:14 +03:00 |
|
Dmitry Stogov
|
8ed4a4d2fa
|
Cleanup "current_range" cache maintenance
|
2022-08-10 15:24:09 +03:00 |
|
Dmitry Stogov
|
8861c6cf54
|
Construct unhandled list in backward order to simplify the list sorting
|
2022-08-10 15:04:01 +03:00 |
|
Dmitry Stogov
|
1ef04d2540
|
Improve live interval coverage and overlaping tests by checking only the necessary tails of active and inactive intervals.
|
2022-08-10 13:59:34 +03:00 |
|
Dmitry Stogov
|
89013100c8
|
Optimize ir_ival_covers() (the list of live ranges is sorted)
|
2022-08-10 10:38:30 +03:00 |
|
Dmitry Stogov
|
0295c071cf
|
Cache the last ir_live_range.end in ir_live_interval.end
|
2022-08-10 09:47:06 +03:00 |
|
Dmitry Stogov
|
d7ddbf89fb
|
Fix usage help
|
2022-08-10 09:31:19 +03:00 |
|
Dmitry Stogov
|
901e1de968
|
Fix incorrect code selection pattern
|
2022-08-09 21:54:34 +03:00 |
|
Dmitry Stogov
|
7f50fe93b1
|
Fix incorrect sheduling
|
2022-08-09 13:06:57 +03:00 |
|
Dmitry Stogov
|
66458b4dee
|
Add spill code
|
2022-08-08 23:17:33 +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
|
6c78558bfe
|
Fuse address calculation into FP load/store
|
2022-07-26 21:04:26 +03:00 |
|
Dmitry Stogov
|
1e5ce07406
|
Fix int32_t overflow
|
2022-07-26 20:29:06 +03:00 |
|
Dmitry Stogov
|
ac8b3bac28
|
Allow GUARDs with constant conditions
|
2022-07-22 09:45:52 +03:00 |
|
Dmitry Stogov
|
1089699f2c
|
Only unsigned MOD may be converted into AND
|
2022-07-21 20:45:19 +03:00 |
|
Dmitry Stogov
|
e235a33679
|
Fix negaive DIV/MOD
|
2022-07-21 20:39:36 +03:00 |
|
Dmitry Stogov
|
6800af4013
|
Support for IJMP with constant operand
|
2022-07-21 20:25:19 +03:00 |
|
Dmitry Stogov
|
efbc6d6b84
|
Fix address calculation fusion
|
2022-07-20 22:30:25 +03:00 |
|
Dmitry Stogov
|
999d7d6aa9
|
Fix loop termination condition
|
2022-07-20 18:16:18 +03:00 |
|
Dmitry Stogov
|
3c4135576a
|
Add TRAP instruction
|
2022-07-20 17:59:44 +03:00 |
|
Dmitry Stogov
|
42df10b3ae
|
Fuse address calculation into store
|
2022-07-20 17:19:46 +03:00 |
|
Dmitry Stogov
|
7552732d65
|
ws
|
2022-07-20 11:39:05 +03:00 |
|
Dmitry Stogov
|
4004a9d222
|
Support for overflow detection
|
2022-07-20 11:25:53 +03:00 |
|
Dmitry Stogov
|
e1ae79102a
|
Fuse address calulation with the following binary op
|
2022-07-19 17:53:17 +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
|
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
|
7ae3d1dc6a
|
Fix memory leak
|
2022-06-23 17:17:06 +03:00 |
|
Dmitry Stogov
|
1bc5dc43dd
|
Add IR_STUB flag
|
2022-06-23 17:06:22 +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
|
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
|
9b25587eb6
|
Compound assignment instruction fusion
|
2022-06-21 17:33:57 +03:00 |
|
Dmitry Stogov
|
082bcf89c9
|
Use ir_ctx.fixed_regset to limit available registers
|
2022-06-21 16:13:14 +03:00 |
|
Dmitry Stogov
|
fc2266d61a
|
Remove PHP specific registers
|
2022-06-21 15:09:26 +03:00 |
|