Commit Graph

31 Commits

Author SHA1 Message Date
Dmitry Stogov
a4b09dd3ce Improve CFG builder 2022-11-11 00:19:17 +03:00
Dmitry Stogov
27fe71c344 Improve CFG builder and reuse ctx->cfg_map for GCM 2022-11-10 22:45:12 +03:00
Dmitry Stogov
17c603eeed CFG construction optimization 2022-11-09 21:56:31 +03:00
Dmitry Stogov
3535fd2fc4 Fix compilation warnings and signed/unsigned mess 2022-11-08 23:09:35 +03:00
Dmitry Stogov
cc56f12f13 Add LICENSE and copyright notices 2022-11-08 11:32:46 +03:00
Dmitry Stogov
d2a0347b21 Merge basic blocks by removing connected END to BEGIN nodes 2022-10-05 16:29:49 +03:00
Dmitry Stogov
dce017f0ed Replace calloc() by malloc() 2022-09-15 11:57:01 +03:00
Dmitry Stogov
b344d2ee0f Remove useless memset() 2022-09-15 11:24:50 +03:00
Dmitry Stogov
96234f5257 Take into account ENTRY nodes, but prefer paths from START 2022-09-14 23:59:54 +03:00
Dmitry Stogov
8fd8913fcc Use loop only for MERGE and LOOP_BEGIN 2022-09-05 19:21:07 +03:00
Dmitry Stogov
6c7889ebd1 Simplify IF->IF_TRUE/IF_FALSE search 2022-09-02 11:00:40 +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
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
253b99ae74 Eliminate useless ir_bitset_empty() checks 2022-08-11 20:42:03 +03:00
Dmitry Stogov
7552732d65 ws 2022-07-20 11:39:05 +03:00
Dmitry Stogov
0ed7f7b41e Fix CFG construction 2022-06-20 23:31:32 +03:00
Dmitry Stogov
5ef1e97261 Better support for unreachable basic blocks 2022-06-20 16:34:44 +03:00
Dmitry Stogov
1c78c3a2c2 Fix CFG consruction when some BB cannot be find using backward serach
(e.g. function with an infinity loop and without return)
2022-06-17 12:20:15 +03:00
Dmitry Stogov
68477b7d7c Add assertion 2022-06-17 09:41:06 +03:00
Dmitry Stogov
3f6c1ee0f5 cleanup 2022-06-15 22:48:19 +03:00
Dmitry Stogov
5cafe50d36 Initial support for PHP 2022-06-10 00:16:29 +03:00
Dmitry Stogov
ad052c59ab cleanup 2022-06-06 22:36:11 +03:00
Dmitry Stogov
41f3e43cf7 cleanup 2022-05-27 13:18:04 +03:00
Dmitry Stogov
9215162833 Ger rid of ir_ctx.bb_num and double neaning of ir_ctx.prev_insn_len 2022-05-25 11:58:35 +03:00
Dmitry Stogov
ddd5b739db Update tasks 2022-05-24 12:59:57 +03:00
Dmitry Stogov
04667faf22 Reorder blocks according to branch probability 2022-05-24 12:47:39 +03:00
Dmitry Stogov
d3c1e4a02f Reorder basic blocks to reduce number of jumps and improve code locality 2022-05-24 00:43:35 +03:00
Dmitry Stogov
2937993190 Initial import 2022-04-06 00:19:23 +03:00