Dmitry Stogov
b37d4e0443
Allow usage of CPU stack slots for deoptimization
2023-06-16 02:14:02 +03:00
Dmitry Stogov
6a98514bdc
Move stack size related metricks to ir_ctx
2023-06-15 19:28:54 +03:00
Dmitry Stogov
311267714e
Use macros insted of bit ops
2023-06-14 20:23:32 +03:00
Dmitry Stogov
defd58cec3
Store proper %sp register value
2023-06-13 18:22:21 +03:00
Dmitry Stogov
848613ce81
Merge pull request #43 from weltling/capstone_devenv2
...
msvc: capstone: Move to using upstream instead of vcpkg
2023-06-13 09:36:51 +03:00
Anatol Belski
658c923580
msvc: capstone: Move to using the VS solution instead of vcpkg
...
Moving to the usage of the upstream sources removes layers of
complexity present in VCPKG and allows for more flexibility with regard
to the dependency handling. Things done:
- Switch to building capstone based from an upstream tag
- Explicitly remove any unused arch support in the build
- Use static lib to simplify on-prem usage
- Cache the capstone artifacts in the pipeline
- Automatically reset cache based on the values in Makefile and
VC++ toolset version
The current capstone version is still kept 5.0-rc2. While evaluating a
possible downgrade to 4.0.2 as used by the Linux CI, some test
regressions are observed on the x64 side. If needed, those might be
spent a closer look, otherwise keeping the version seems ok.
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2023-06-10 13:24:28 +02:00
Dmitry Stogov
cc87d1291f
Fixed tests
2023-06-09 16:29:38 +03:00
Dmitry Stogov
6a8830c1dc
Better usage of the register hints
2023-06-09 16:26:15 +03:00
Dmitry Stogov
257bdff21a
Fix compilation warnings
2023-06-09 10:58:58 +03:00
Dmitry Stogov
0d3af66a2b
Fix test
2023-06-09 10:58:49 +03:00
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