Dmitry Stogov
|
56956cbe0f
|
Load fusion for IF_INT
|
2022-08-25 22:18:15 +03:00 |
|
Dmitry Stogov
|
1f657fd4d7
|
Load fusion for MUL/DIV/MOD
|
2022-08-25 21:47:07 +03:00 |
|
Dmitry Stogov
|
dbb382224d
|
Remove useless code
|
2022-08-25 21:14:56 +03:00 |
|
Dmitry Stogov
|
47083e0f9f
|
Improve LOAD fusion
|
2022-08-25 18:16:17 +03:00 |
|
Dmitry Stogov
|
aa28e865da
|
Fuse load into binary ops
|
2022-08-24 23:26:08 +03:00 |
|
Dmitry Stogov
|
65e1619de8
|
Fuse address calculation into LOAD/STORE
|
2022-08-24 16:11:04 +03:00 |
|
Dmitry Stogov
|
70f6faa612
|
Add basic IR verification
|
2022-08-24 13:57:55 +03:00 |
|
Dmitry Stogov
|
6973c76f64
|
Update tasks
|
2022-08-23 19:00:47 +03:00 |
|
Dmitry Stogov
|
32e045d93e
|
typo
|
2022-08-23 17:02:34 +03:00 |
|
Dmitry Stogov
|
22e8d9930b
|
Add SEXT/ZEXT folding for BOOL constants
|
2022-08-23 15:32:49 +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
|
b607a28b2a
|
Fix
|
2022-08-12 21:01:35 +03:00 |
|
Dmitry Stogov
|
360ca107f4
|
Replace dirst ir_bitset_union() by ir_bitset_copy()
|
2022-08-12 19:52:24 +03:00 |
|
Dmitry Stogov
|
d55154d998
|
Introduce ir_bitqueue API
|
2022-08-12 19:25:10 +03:00 |
|
Dmitry Stogov
|
9ff5d74778
|
Introduce ir_bitset_pop_first_ex() and ir_bitset_incl_ex() to avoid repatable checks of the first bitset elements.
|
2022-08-12 18:01:15 +03:00 |
|
Dmitry Stogov
|
3a0fb71282
|
Improve ir_bitset_pop_first()
|
2022-08-12 16:09:32 +03:00 |
|
Dmitry Stogov
|
e7e0da2e79
|
ir_bitset API improvement
|
2022-08-12 15:54:25 +03:00 |
|
Dmitry Stogov
|
253b99ae74
|
Eliminate useless ir_bitset_empty() checks
|
2022-08-11 20:42:03 +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
|
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 |
|