Dmitry Stogov
|
2e31446e37
|
Better 'jp' elimination for IR_CMP_AND_BRANCH_FP
|
2023-02-07 01:57:07 +03:00 |
|
Dmitry Stogov
|
02104b0950
|
Add XFAIL-ed test for a non-efficient register allocation that should be improved
|
2023-02-07 00:06:53 +03:00 |
|
Dmitry Stogov
|
54597bc862
|
Clear destination regeister before INT to FP conversion to avoid partial register stall
|
2022-12-28 00:05:23 +03:00 |
|
Dmitry Stogov
|
67da9e93ea
|
Fix register clobbering during argument passing and spill load
|
2022-12-26 20:25:11 +03:00 |
|
Dmitry Stogov
|
d26b162ffa
|
Fix register clobbering during argument passing
|
2022-12-26 18:27:53 +03:00 |
|
Dmitry Stogov
|
95729f76bf
|
Use IMUL instead of MUL
|
2022-12-16 12:57:40 +03:00 |
|
Dmitry Stogov
|
efbc51baaa
|
Fixed codegeneration for TRUNC on aarch64
|
2022-12-07 11:56:53 +03:00 |
|
Dmitry Stogov
|
daf659a457
|
Fix incorrect conditions
|
2022-12-01 00:43:42 +03:00 |
|
Dmitry Stogov
|
c6aeb417fa
|
Extend test suite to support XFAIL section
|
2022-11-22 10:43:29 +03:00 |
|
Dmitry Stogov
|
3e3746d5cb
|
Refactor API that expose target CPU register constraints for register allocator
|
2022-11-17 23:30:35 +03:00 |
|
Dmitry Stogov
|
05127b1b13
|
Remove duplicate code and allow load fusion of IR_SHIFT.op2
|
2022-11-16 13:20:58 +03:00 |
|
Dmitry Stogov
|
673779ba6a
|
Use IR_COPY_INT/FP rule instead of IR_COPY op
|
2022-11-16 12:55:40 +03:00 |
|
Dmitry Stogov
|
4c536aae20
|
Extend SCCP to perform Dead Load Elimination
|
2022-11-08 15:39:00 +03:00 |
|
Dmitry Stogov
|
37dececa71
|
Add more tests (8 tests ara failed on 32-bit x86)
|
2022-11-08 11:56:22 +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
|
924f5949f2
|
Fixed SSE operands alignment and 32-bit support
|
2022-09-27 20:36:34 +03:00 |
|
Dmitry Stogov
|
05fd1f971d
|
Better LOAD fusion
|
2022-09-21 23:54:45 +03:00 |
|
Dmitry Stogov
|
69a3d6fd27
|
Verify type compatibility
|
2022-09-02 09:50:38 +03:00 |
|
Dmitry Stogov
|
32198c00b7
|
Reimplement JMP optimization
|
2022-08-30 23:15:20 +03:00 |
|
Dmitry Stogov
|
0596de2291
|
Fuse LOAD into IMULL/3
|
2022-08-30 11:26:38 +03:00 |
|
Dmitry Stogov
|
fd8539e17d
|
Eliminate TEST after ADD/SUB/AND/OR/XOR
|
2022-08-29 22:22:30 +03:00 |
|
Dmitry Stogov
|
47083e0f9f
|
Improve LOAD fusion
|
2022-08-25 18:16:17 +03:00 |
|
Dmitry Stogov
|
65e1619de8
|
Fuse address calculation into LOAD/STORE
|
2022-08-24 16:11:04 +03:00 |
|
Dmitry Stogov
|
32e045d93e
|
typo
|
2022-08-23 17:02:34 +03:00 |
|
Dmitry Stogov
|
88b8731c16
|
Fix incorrect condition codes
|
2022-08-02 13:04:03 +03:00 |
|
Dmitry Stogov
|
9b25587eb6
|
Compound assignment instruction fusion
|
2022-06-21 17:33:57 +03:00 |
|
Dmitry Stogov
|
5fb115ab11
|
Remove LOOP_EXIT
|
2022-06-15 17:27:31 +03:00 |
|
Dmitry Stogov
|
c28fe2734d
|
Validate operand types
|
2022-06-03 11:23:05 +03:00 |
|
Dmitry Stogov
|
ab8019e0cd
|
Aarch64 back-end (incomplete)
|
2022-06-02 15:12:56 +03:00 |
|
Dmitry Stogov
|
bb842b489c
|
Aarch64 backend support & unification
|
2022-06-01 18:16:32 +03:00 |
|
Dmitry Stogov
|
f5bbdeea27
|
Fix buffer overflow
|
2022-05-26 17:19:43 +03:00 |
|
Dmitry Stogov
|
7e782a291a
|
Extend disassembler to support .rodata section and IP relative data labels
|
2022-05-26 01:17:02 +03:00 |
|
Dmitry Stogov
|
19e93fd3f6
|
Allow multi-target test suite
|
2022-05-25 17:38:22 +03:00 |
|
Dmitry Stogov
|
463002107a
|
Rename "gcm_blocks" into "cfg_map"
|
2022-05-25 09:33:47 +03:00 |
|
Dmitry Stogov
|
04667faf22
|
Reorder blocks according to branch probability
|
2022-05-24 12:47:39 +03:00 |
|
Dmitry Stogov
|
d3c1e4a02f
|
Reorder basic blocks to reduce number of jumps and improve code locality
|
2022-05-24 00:43:35 +03:00 |
|
Dmitry Stogov
|
6f7f7b1268
|
Implement code generation for type conversion instructions
Register constraints might need to be tweeked.
|
2022-05-20 13:07:41 +03:00 |
|
Dmitry Stogov
|
c464b123cb
|
Add test for TRUNC
|
2022-05-20 09:09:52 +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
|
bae7df6a5f
|
Implement code generation for MIN and MAX instructions
|
2022-05-19 17:03:00 +03:00 |
|
Dmitry Stogov
|
bf369d0eac
|
Swap operands for better load fusion
|
2022-05-19 13:17:50 +03:00 |
|
Dmitry Stogov
|
c9bb858e50
|
Fuse loads without register allocation when this makes sense.
Make oarameters passed through stack to reuse the same stack slot for spilling.
|
2022-05-19 10:53:08 +03:00 |
|
Dmitry Stogov
|
88ab04a3c2
|
New tests
|
2022-05-18 23:53:16 +03:00 |
|
Dmitry Stogov
|
cdd39f22b0
|
Merge spills for VSTORE with -O0
|
2022-05-18 23:12:20 +03:00 |
|
Dmitry Stogov
|
c5a24ff734
|
Add support for instructions that modify result directly in memory
|
2022-05-18 21:49:08 +03:00 |
|
Dmitry Stogov
|
5319951060
|
Align stack once
|
2022-05-17 23:01:37 +03:00 |
|
Dmitry Stogov
|
e794451451
|
Preallocate call stack
|
2022-05-17 22:37:13 +03:00 |
|
Dmitry Stogov
|
445dd65c78
|
Improve argument passing
|
2022-05-17 17:30:04 +03:00 |
|