Dmitry Stogov
bc0db1432e
Fixed crash in case --emit-c is used together with -O0
2023-12-14 12:39:12 +03:00
Dmitry Stogov
6a7a87529c
Improve LLVM export (avoid duplicate function declarations)
2023-12-05 23:09:39 +03:00
Dmitry Stogov
76e6418cae
Support for function prototypes
2023-11-30 21:10:41 +03:00
Dmitry Stogov
ea2de69592
Add bit counting nodes (JIT code generation is not supported yet)
2023-11-16 03:05:10 +03:00
Dmitry Stogov
90b6f34db2
Add FRAME_ADDR node
2023-11-16 01:59:26 +03:00
Dmitry Stogov
507175b228
Add VA_ARG nodes (JIT code generation is not supported yet)
2023-11-16 00:29:24 +03:00
Dmitry Stogov
e5b4c686df
Added support for overflow math
2023-11-15 18:44:05 +03:00
Dmitry Stogov
49316643e7
Initial support for modules (incomplete)
2023-10-20 17:44:45 +03:00
Dmitry Stogov
d0686408e2
Initial support for SYM constants (incomplete)
2023-10-18 11:45:57 +03:00
Dmitry Stogov
85b2ea6e16
clenup
2023-09-29 09:42:31 +03:00
Dmitry Stogov
51a37f159b
Initial implementation of LLVM export
2023-09-28 20:44:45 +03:00
Dmitry Stogov
8977307f4e
Improve error handling
2023-09-14 20:15:30 +03:00
Dmitry Stogov
1d49fe6cc4
Reduce cost of disabled IR_ASSERT()
2023-07-27 11:16:00 +03:00
Dmitry Stogov
f6cf9140da
Update ir_insn.inputs_count and use it after ir_build_def_use_lists()
2023-07-06 01:15:08 +03:00
Dmitry Stogov
ebaefd376a
Fix stack frame and assign all spill slots before code genearatin
2023-06-21 19:04:22 +03:00
Dmitry Stogov
4d2ef9401f
Fixed GH Issue #41 (ir_emit_c() dumping misses BB label)
2023-05-29 13:58:32 +03:00
Tony Su
4cdd3eba77
[Fix]: ir_print_const() prints enclosing quote or not
...
Current ir_print_const() will by default print out the enclosing double
quote for any string, but this will lead to syntax error in dumped dot
file by ir_dump_dot() reported by 'dot' command.
ir_print_const() now has the fourth parameter to indicate whether prints
out the enclosing double quote(") or not.
OLD: ir_print_const(const ir_ctx *ctx, const ir_insn *insn, FILE *f)
NEW: ir_print_const(const ir_ctx *ctx, const ir_insn *insn, FILE *f, bool quoted)
Signed-off-by: Tony Su <tao.su@intel.com>
2023-05-22 21:02:46 +08: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
f85f5fd2a8
Remove data dependency between TAILCALL and UNREACHABLE
2023-04-13 02:41:28 +03:00
Dmitry Stogov
87dbdcea0d
Add necessary compensation loads for bounded nodes when enter into function through OSR entry-point
2023-03-21 13:45:37 +03:00
Dmitry Stogov
9b34731d16
Fix most MSVC compilation warnings
2023-02-28 02:11:09 +03:00
Dmitry Stogov
771da56d07
Fix incorrect tests for empty basic blocks
2023-01-24 11:48:21 +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
a137adfdf9
Separate ir_build_prev_refs(). It's necessary only for -O0 pipeline.
2022-11-24 12:55:16 +03:00
Dmitry Stogov
dde8309108
Use reference to previous instruction instead of its length
2022-11-18 13:59:49 +03:00
Dmitry Stogov
3535fd2fc4
Fix compilation warnings and signed/unsigned mess
2022-11-08 23:09:35 +03:00
Dmitry Stogov
cc73788981
Fix compilation warnings
2022-11-08 18:17:29 +03:00
Dmitry Stogov
cc56f12f13
Add LICENSE and copyright notices
2022-11-08 11:32:46 +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
00e92483bc
Fix compilation warnings
2022-06-21 11:41:59 +03:00
Dmitry Stogov
5ef1e97261
Better support for unreachable basic blocks
2022-06-20 16:34:44 +03:00
Dmitry Stogov
5fb115ab11
Remove LOOP_EXIT
2022-06-15 17:27:31 +03:00
Dmitry Stogov
ad052c59ab
cleanup
2022-06-06 22:36:11 +03:00
Dmitry Stogov
ead2b69fc6
x86_32 backend (incomplete)
2022-05-25 22:00:18 +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
d250f77713
Improve type conversion nodes
2022-05-20 09:00:13 +03:00
Dmitry Stogov
c6b0e95d6b
Add type conversion nodes (no code generation yet)
2022-05-20 01:01:48 +03:00
Dmitry Stogov
911219493d
Implement IJMP instruction (indirect jump or computed goto)
2022-05-19 18:56:48 +03:00
Dmitry Stogov
69b5a852e5
Make DESSA API use "ir_ref" instead of "virtual register number"
...
(0 - is still a temporary register)
2022-05-06 16:19:57 +03:00
Dmitry Stogov
6f3cc3052c
Implement ABS for C code generator
...
Remove POW
2022-04-21 01:00:46 +03:00
Dmitry Stogov
705f0f1e1d
VADDR instruction
2022-04-20 12:00:36 +03:00
Dmitry Stogov
51daf5556c
Initial support for ALLOCA, LOAD and STORE (incomplete)
2022-04-19 23:42:05 +03:00
Dmitry Stogov
7e9d1d7dba
Improve VLOAD/VSTORE support in C code generator
2022-04-19 17:14:44 +03:00
Dmitry Stogov
9ccefcf973
Support for more instruction in C backend and BOOL_NOT in x86_86
2022-04-08 19:02:11 +03:00
Dmitry Stogov
2937993190
Initial import
2022-04-06 00:19:23 +03:00