Dmitry Stogov
|
9b558e544f
|
Allow fusion of single address calculation instruction into several load/store instructions
Previously, if calculated address were used in few places we kept it in a register (without
fusion).
|
2022-09-01 20:40:29 +03:00 |
|
Dmitry Stogov
|
756a1afc82
|
Better register allocation support for address and load fusion
|
2022-09-01 19:19:01 +03:00 |
|
Dmitry Stogov
|
d29a51a979
|
Remove unused "flags"
|
2022-09-01 13:04:54 +03:00 |
|
Dmitry Stogov
|
dd271af057
|
Speedup local scheduling by loop unrolling
|
2022-09-01 12:48:10 +03:00 |
|
Dmitry Stogov
|
3a20a8130c
|
JMP optimization. Better ENETR block placement.
|
2022-08-31 14:29:34 +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
|
5afa116d34
|
Get rid of MREF macros
|
2022-08-30 16:15:30 +03:00 |
|
Dmitry Stogov
|
80192093e5
|
Swap operands of FP comparison to produce the better code
|
2022-08-30 15:52:55 +03:00 |
|
Dmitry Stogov
|
e4be1de649
|
Allow LOAD/STORE fusion for ADD_OV/SUB_OV
|
2022-08-30 12:23:20 +03:00 |
|
Dmitry Stogov
|
0596de2291
|
Fuse LOAD into IMULL/3
|
2022-08-30 11:26:38 +03:00 |
|
Dmitry Stogov
|
e87e71b092
|
cleanup
|
2022-08-30 10:23:56 +03:00 |
|
Dmitry Stogov
|
11c03dbfb3
|
Fix call stack alignment and fastcall support
|
2022-08-30 00:42:06 +03:00 |
|
Dmitry Stogov
|
fd8539e17d
|
Eliminate TEST after ADD/SUB/AND/OR/XOR
|
2022-08-29 22:22:30 +03:00 |
|
Dmitry Stogov
|
c69d970ca2
|
Add missing "else"
|
2022-08-26 11:50:28 +03:00 |
|
Dmitry Stogov
|
e023a18749
|
Test part of the register to avoid test with mask
|
2022-08-26 11:48:13 +03:00 |
|
Dmitry Stogov
|
57f9e6ed8f
|
Optimize AND into TEST
|
2022-08-26 11:07:35 +03:00 |
|
Dmitry Stogov
|
23d7b3b4ac
|
Simplift integer comarison code genertor
|
2022-08-25 23:42:15 +03:00 |
|
Dmitry Stogov
|
1d4b00ddb0
|
Load fusion for BITCAST
|
2022-08-25 23:18:00 +03:00 |
|
Dmitry Stogov
|
f8cf71318e
|
Load fusion into type conversion instructions
|
2022-08-25 23:06:45 +03:00 |
|
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 |
|