Dmitry Stogov
844653cfd1
Fix IR reconstruction during SCCP
2022-12-23 14:34:51 +03:00
Dmitry Stogov
1bff08bc10
Update use_lists when modify an instruction
2022-12-21 23:31:11 +03:00
Dmitry Stogov
6a4e239773
Create a sparate pass to remove unreachableble CFG blocks.
...
SCCP pass removes unreachable blocks before CFG construction.
In case of -O0 or -O1 pipeline (without SCCP) it's simpler and faster
to unlink unreachable CFG blocks once, then check for reachability
in almost any compilation pass.
-O2 pipeline (with SCCP) don't need this pass.
2022-11-29 20:02:07 +03:00
Dmitry Stogov
142cdb4b8b
SCCP cleanup and optimization
2022-11-09 13:24:37 +03:00
Dmitry Stogov
cc73788981
Fix compilation warnings
2022-11-08 18:17:29 +03:00
Dmitry Stogov
4c536aae20
Extend SCCP to perform Dead Load Elimination
2022-11-08 15:39:00 +03:00
Dmitry Stogov
cc56f12f13
Add LICENSE and copyright notices
2022-11-08 11:32:46 +03:00
Dmitry Stogov
2ff0617db6
Perform iterative folding and DCE as a final pass of SCCP
2022-11-08 00:41:08 +03:00
Dmitry Stogov
5ba4050248
cleanup SCCP
2022-11-08 00:37:28 +03:00
Dmitry Stogov
9f472c1c91
Add support for deoptimization and binding to multiple slots
2022-10-21 17:16:25 +03:00
Dmitry Stogov
6e0415a44d
Fix SCCP for PHIs
2022-10-12 12:01:28 +03:00
Dmitry Stogov
66b62b7447
Fix use after reallocation
2022-09-28 14:31:46 +03:00
Dmitry Stogov
ccb756321a
Fix incorrect unreachable code detection
2022-09-15 00:04:26 +03:00
Dmitry Stogov
11db21a98c
Allow SCCP to grow use_lists (through reallocation)
2022-09-14 15:14:18 +03:00
Dmitry Stogov
14ffff68dc
Fix SCCP problems
2022-09-14 14:27:52 +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
a998590dfb
Fix SCCP support for IF with integer and floating point condition
2022-09-12 14:53:33 +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
6c7889ebd1
Simplify IF->IF_TRUE/IF_FALSE search
2022-09-02 11:00:40 +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
7ae3d1dc6a
Fix memory leak
2022-06-23 17:17:06 +03:00
Dmitry Stogov
88b66a77cd
Support for multiple ENTRY
2022-06-21 13:56:29 +03:00
Dmitry Stogov
00e92483bc
Fix compilation warnings
2022-06-21 11:41:59 +03:00
Dmitry Stogov
ac5c3981e5
Allow LOOP_BEGIN to have multiple input back-edges
2022-06-16 12:31:23 +03:00
Dmitry Stogov
3f6c1ee0f5
cleanup
2022-06-15 22:48:19 +03:00
Dmitry Stogov
41f3e43cf7
cleanup
2022-05-27 13:18:04 +03:00
Dmitry Stogov
911219493d
Implement IJMP instruction (indirect jump or computed goto)
2022-05-19 18:56:48 +03:00
Dmitry Stogov
2b9e793b4e
Add debug options
2022-04-27 14:47:52 +03:00
Dmitry Stogov
6b60d8fba9
Code generation for VLOAD and VSTORE
2022-04-19 22:35:29 +03:00
Dmitry Stogov
e449345514
Fix few CSSP bugs
2022-04-19 16:45:03 +03:00
Dmitry Stogov
2937993190
Initial import
2022-04-06 00:19:23 +03:00