Commit Graph

961 Commits

Author SHA1 Message Date
Dmitry Stogov
b8be0b9dd9 Avoid loading of stack parameter to register if this is not necessary 2023-06-09 00:35:15 +03:00
Dmitry Stogov
e506c1367d Allow motion of loop invariant bound nodes
Spilling of bound nodes may introduce anti-dependencies, but the
previous restriction doesn't fix the possible problems
2023-06-08 00:32:36 +03:00
Dmitry Stogov
ae4daf223e Replace assertion with a non-fatal error 2023-06-07 18:39:51 +03:00
Dmitry Stogov
c599cfbdf3 Fixed spill slot allocation 2023-06-07 18:37:37 +03:00
Dmitry Stogov
3de6c5126a Avoid code generation for useless loads and stores 2023-06-07 14:43:16 +03:00
Dmitry Stogov
eaaf487600 Avoid check for PHI in BB started by a node with a single use-def edge (control edge) 2023-06-07 11:47:42 +03:00
Dmitry Stogov
70da8bef54 Avoid check for PHI, PI, PARAM and VAR nodes in BB started by a node with a single use-def edge (control edge) 2023-06-07 10:27:41 +03:00
Dmitry Stogov
3f009c2d5a Disable scheduling of related ADD_OV/SUB_OV/MUL_OV and OVERFLOW into different blocks 2023-06-06 23:55:40 +03:00
Dmitry Stogov
18bdfb4203 Bettter code scheduling 2023-06-06 23:55:15 +03:00
Dmitry Stogov
d049bdfdb5 Fixed format specifiers 2023-06-06 17:22:54 +03:00
Dmitry Stogov
d2d4e275a7
Merge pull request #42 from weltling/examples2
examples: Add new example and some comments
2023-06-05 19:15:24 +03:00
Dmitry Stogov
186dc6b0a6 Fixed GH issue #33: IR program failed to compile with "-O0" "-S" options 2023-06-05 18:22:12 +03:00
Anatol Belski
187452cba2 examples: Add example for void function with pointer arg
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2023-06-05 16:11:27 +02:00
Anatol Belski
283f443615 examples: Add some comments to example files
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2023-06-05 16:11:27 +02:00
Dmitry Stogov
b5bb5f869a Fixed GH Issue #34 (Simple if-else IR program compile failure) 2023-06-05 14:21:03 +03:00
Dmitry Stogov
4e01e7251e Implemented support for veneers on AArch64 2023-06-02 00:49:32 +03:00
Dmitry Stogov
3b0de17cdd Added missing fixed interval 2023-06-01 11:00:39 +03:00
Dmitry Stogov
6009e376b7 Speed-up liner scan
- Don't add allocated interval into "active" list, if it doesn't overlap
  with next unhandled
- More efficient selection of registers available for the whole range
2023-06-01 00:48:21 +03:00
Dmitry Stogov
38ee633419 Don't move conditions of IF and GUARDs out of loops 2023-05-30 15:10:23 +03:00
Dmitry Stogov
b560ddc8f6 Added test 2023-05-29 17:11:26 +03:00
Dmitry Stogov
c9d3804b6e Fixed mistakes in GCM algorithm 2023-05-29 17:02:50 +03:00
Dmitry Stogov
87f2fc7f69 Fixed typo 2023-05-29 15:52:17 +03:00
Dmitry Stogov
4d2ef9401f Fixed GH Issue #41 (ir_emit_c() dumping misses BB label) 2023-05-29 13:58:32 +03:00
Dmitry Stogov
20b9a7513c Fixed missing label 2023-05-26 09:08:57 +03:00
Dmitry Stogov
9dd7f4f903 Fixed the code end boundary check 2023-05-25 15:45:17 +03:00
Dmitry Stogov
30c6717812 Fixed incorrect condition evaluation 2023-05-23 19:32:18 +03:00
Dmitry Stogov
cbfdeb46fe Fixed typo 2023-05-23 16:06:49 +03:00
Dmitry Stogov
46fd86acb9 Itroduce a reference ir_jit_compile() and use it in examples 2023-05-23 10:52:59 +03:00
Dmitry Stogov
9296ff3b75 Fix examples 2023-05-23 10:24:27 +03:00
Dmitry Stogov
5fc8900536
Merge pull request #37 from weltling/examples
doc: Add examples folder
2023-05-23 09:59:23 +03:00
Anatol Belski
548e892219 examples: Add missing call to ir_compute_dessa_moves
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2023-05-22 22:44:48 +02:00
Anatol Belski
d64a2b5493 examples: Add a while loop example
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2023-05-22 22:44:47 +02:00
Anatol Belski
764f5c3985 examples: Add examples and makefiles
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2023-05-22 22:44:47 +02:00
Dmitry Stogov
75edc8fec5 Added type compatibility assertion and fixed mistakes in tests 2023-05-22 20:48:07 +03:00
Dmitry Stogov
d1fcaa3e63 Fixed code style 2023-05-22 20:08:36 +03:00
Dmitry Stogov
71061d0ee4
Merge pull request #38 from stkeke/dot_fix
[Fix]: ir_print_const() prints enclosing quote or not
2023-05-22 20:05:03 +03:00
Dmitry Stogov
2a80257535 Support for more C escape sequences 2023-05-22 19:51:19 +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
2a400f38ed Fixed ir_VADDR() macro 2023-05-22 09:58:15 +03:00
Dmitry Stogov
ec091fc534 Fixed typo 2023-05-22 09:53:57 +03:00
Dmitry Stogov
b8acbeb5ee
Merge pull request #36 from dktapps/patch-1
Fix typo
2023-05-22 09:42:55 +03:00
Dylan T
3fbf1663e1
Fix typo 2023-05-20 23:00:34 +01:00
Dmitry Stogov
c93abd79b2 Remove IR_OPND_VAR 2023-05-19 13:00:55 +03:00
Dmitry Stogov
d3640495a2 Ceanup ir_compute_live_ranges() implementation 2023-05-19 12:34:54 +03:00
Dmitry Stogov
5c2023fd7f Avoid live range constrction for VARs 2023-05-18 21:00:57 +03:00
Dmitry Stogov
ef31712f26 Remove usused IR_LIVE_INTERVAL_REG_LOAD flag 2023-05-18 14:17:54 +03:00
Dmitry Stogov
477dbf7d76 Avoid live range constrction for RLOAD with fixed registers 2023-05-18 13:37:12 +03:00
Dmitry Stogov
b6517f2028 Split IR_LIVE_INTERVAL_HAS_HINTS into IR_LIVE_INTERVAL_HAS_HINT_REGS and
IR_LIVE_INTERVAL_HAS_HINT_REFS
2023-05-18 10:48:31 +03:00
Dmitry Stogov
3dcb083eb6 Fix Win64 tests 2023-05-17 22:49:26 +03:00
Dmitry Stogov
c9fa8dfebd Fixed SSA deconstruction
Previously we performed parallel copy for virtual registers, now we do
the same for the target CPU registers.
2023-05-17 22:37:45 +03:00