Dmitry Stogov
|
96234f5257
|
Take into account ENTRY nodes, but prefer paths from START
|
2022-09-14 23:59:54 +03:00 |
|
Dmitry Stogov
|
a80fac2cab
|
Add assertion if there are no common antecessor
(this is possible for code with multiple EMTRY-es)
|
2022-09-14 17:30:11 +03:00 |
|
Dmitry Stogov
|
5f4b42155f
|
ctx->rules[] is valid only for non CONST IR reference
|
2022-09-14 15:54:24 +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
|
cdc34ae22b
|
Prohibit swapping of operands when the first operand is constant
|
2022-09-14 14:28:57 +03:00 |
|
Dmitry Stogov
|
14ffff68dc
|
Fix SCCP problems
|
2022-09-14 14:27:52 +03:00 |
|
Dmitry Stogov
|
75ce65ce65
|
Fix verifier
|
2022-09-13 21:53:27 +03:00 |
|
Dmitry Stogov
|
5e1e064338
|
Remove PHP related exceptional case
|
2022-09-13 14:01:37 +03:00 |
|
Dmitry Stogov
|
5aad53388d
|
Fix IR checker
|
2022-09-13 12:44:59 +03:00 |
|
Dmitry Stogov
|
bab62d42c9
|
Fix assertion
|
2022-09-13 12:44:08 +03:00 |
|
Dmitry Stogov
|
e833a1647b
|
Move code to remove TERMINATOR node from the terminator list
|
2022-09-13 12:42:41 +03:00 |
|
Dmitry Stogov
|
f41a256af4
|
Verify forward edges between control nodes
|
2022-09-12 23:29:25 +03:00 |
|
Dmitry Stogov
|
a998590dfb
|
Fix SCCP support for IF with integer and floating point condition
|
2022-09-12 14:53:33 +03:00 |
|
Dmitry Stogov
|
dee45adc8c
|
Fix incorrect bindings and ws
|
2022-09-08 10:50:07 +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
|
443ca46958
|
Fix GCM.
PHI nodes must be pinned together with CONTROL nodes, before any other DATA nodes.
|
2022-09-07 17:14:22 +03:00 |
|
Dmitry Stogov
|
a2f151aa0d
|
Use original link
|
2022-09-07 10:17:29 +03:00 |
|
Dmitry Stogov
|
65f439f198
|
Turn ir_addrtab into more general ir_hashtab
|
2022-09-07 00:04:02 +03:00 |
|
Dmitry Stogov
|
fd2cb71d7f
|
Add README.md
|
2022-09-06 19:11:14 +03:00 |
|
Dmitry Stogov
|
b68c4db601
|
Don't fuse LOAD into instruction in diffrent basic block
|
2022-09-06 14:01:35 +03:00 |
|
Dmitry Stogov
|
76028e8855
|
Fix compilation warnings
|
2022-09-05 22:43:27 +03:00 |
|
Dmitry Stogov
|
7f703fb176
|
remove brackets
|
2022-09-05 22:03:30 +03:00 |
|
Dmitry Stogov
|
d5f73bf388
|
Skip op1 of CONTROL nodes
|
2022-09-05 22:00:00 +03:00 |
|
Dmitry Stogov
|
e0e5838a4b
|
GCM optimization
|
2022-09-05 21:26:27 +03:00 |
|
Dmitry Stogov
|
8fd8913fcc
|
Use loop only for MERGE and LOOP_BEGIN
|
2022-09-05 19:21:07 +03:00 |
|
Dmitry Stogov
|
8600801c1f
|
Eliminate identical comparisons
|
2022-09-05 14:41:38 +03:00 |
|
Dmitry Stogov
|
fb0d5fd87c
|
Improve GUARD instructions support
|
2022-09-02 13:54:31 +03:00 |
|
Dmitry Stogov
|
c865599451
|
Fix code generation
|
2022-09-02 13:12:58 +03:00 |
|
Dmitry Stogov
|
2c2a9716ab
|
Use sorted list to search for identical constants
|
2022-09-02 11:08:55 +03:00 |
|
Dmitry Stogov
|
6c7889ebd1
|
Simplify IF->IF_TRUE/IF_FALSE search
|
2022-09-02 11:00:40 +03:00 |
|
Dmitry Stogov
|
69a3d6fd27
|
Verify type compatibility
|
2022-09-02 09:50:38 +03:00 |
|
Dmitry Stogov
|
5034f8dedb
|
Allow genearion of TEST MEM, IMM
|
2022-09-01 22:25:29 +03:00 |
|
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 |
|