Commit Graph

31 Commits

Author SHA1 Message Date
Dmitry Stogov
ec58853788 Validate opcode 2023-11-07 11:33:35 +03:00
Dmitry Stogov
49316643e7 Initial support for modules (incomplete) 2023-10-20 17:44:45 +03:00
Dmitry Stogov
3f728b61b9 Allow forward references for any PHI operans before scheduling 2023-10-12 12:43:51 +03:00
Dmitry Stogov
8668550427
Initial support for LLVM loader (incomplete) (#53)
Currently we may just load LLVM module and convert all functions into IR (print it).
For better LLVM support IR framework needs support for modules.
Some LLVM features are not supported yet (see TODOs in ir_load_llvm.c) .
2023-10-11 12:46:31 +03:00
Javier Eguiluz
2f4f8504d4
Fix some typos (#51) 2023-10-03 08:34:02 +03:00
Dmitry Stogov
51a37f159b Initial implementation of LLVM export 2023-09-28 20:44:45 +03:00
Dmitry Stogov
4cf60c7c5f Validata SSA dominance property 2023-08-31 11:23:24 +03:00
Dmitry Stogov
ea7b921f1b Cleanup 2023-07-04 12:19:24 +03:00
Dmitry Stogov
c93abd79b2 Remove IR_OPND_VAR 2023-05-19 13:00:55 +03:00
Dmitry Stogov
1749168078 Add ir_insn_len() and ir_insn_inputs_to_len() private helpers 2023-04-21 13:40:55 +03:00
Dmitry Stogov
e01c43a967 Simplify access to nodes with variable inputs count 2023-04-21 12:40:17 +03:00
Dmitry Stogov
ba0fa44447 Add "const" modifiers 2023-03-28 13:18:12 +03:00
Dmitry Stogov
f5b7065b10 Refactor the ENTRY nodes
Now all ENTRY nodes have a "fake" input control edge.
Through this edge all of them are dominated by START node.
2023-03-17 09:02:37 +03:00
Dmitry Stogov
aada927840 Add type checks for LOAD/STORE and VLOAD/VSTORE 2023-02-07 00:05:59 +03:00
Dmitry Stogov
169033c291 RETURN may be followed by ENTRY 2023-01-23 16:04:11 +03:00
Dmitry Stogov
211677e2c2 Add check for SWITCH targets 2023-01-18 09:37:30 +03:00
Dmitry Stogov
3535fd2fc4 Fix compilation warnings and signed/unsigned mess 2022-11-08 23:09:35 +03:00
Dmitry Stogov
582c62b83b Verify consistecy of use_lists 2022-11-08 16:08:31 +03:00
Dmitry Stogov
cc56f12f13 Add LICENSE and copyright notices 2022-11-08 11:32:46 +03:00
Dmitry Stogov
9f472c1c91 Add support for deoptimization and binding to multiple slots 2022-10-21 17:16:25 +03:00
Dmitry Stogov
8a05b4ddeb Make ADDR to be compatible with U64 or U32 2022-09-15 18:01:32 +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
f41a256af4 Verify forward edges between control nodes 2022-09-12 23:29:25 +03:00
Dmitry Stogov
76028e8855 Fix compilation warnings 2022-09-05 22:43:27 +03:00
Dmitry Stogov
69a3d6fd27 Verify type compatibility 2022-09-02 09:50:38 +03:00
Dmitry Stogov
aa28e865da Fuse load into binary ops 2022-08-24 23:26:08 +03:00
Dmitry Stogov
70f6faa612 Add basic IR verification 2022-08-24 13:57:55 +03:00
Dmitry Stogov
41f3e43cf7 cleanup 2022-05-27 13:18:04 +03:00
Dmitry Stogov
2937993190 Initial import 2022-04-06 00:19:23 +03:00