Dmitry Stogov
|
efa8a83153
|
Fix spilling code for arguments passed theought stack and change RA to
prefer reusing the same register for splitted intervals
i# utils/
|
2023-04-06 00:16:49 +03:00 |
|
Dmitry Stogov
|
1e5e9e08ce
|
Re-implement instruction fusion and live-range construction
|
2023-04-05 19:20:43 +03:00 |
|
Dmitry Stogov
|
b109e2f2cd
|
Disable LOAD fusion if there is a STORE or CALL between LOAD and its use
|
2023-03-30 19:07:21 +03:00 |
|
Dmitry Stogov
|
ee827ee983
|
Don't create two DEF UsePos
|
2023-03-29 17:22:49 +03:00 |
|
Dmitry Stogov
|
d79bd88f6f
|
Improve x86 code generation for passing address of label to stack
- leal .L1, %eax
- movl %eax, (%esp)
+ movl $.L1, (%esp)
|
2023-03-29 15:48:41 +03:00 |
|
Dmitry Stogov
|
5bed3d73a5
|
Fix test
|
2023-03-29 15:13:17 +03:00 |
|
Dmitry Stogov
|
7164bc30e4
|
Fix "diff" on Windows
|
2023-03-29 15:08:05 +03:00 |
|
Dmitry Stogov
|
b63041199e
|
Add --show-diff for Windows CI test
|
2023-03-29 14:53:50 +03:00 |
|
Dmitry Stogov
|
b193a348c5
|
Add --show-diff for Windows CI test
|
2023-03-29 14:43:54 +03:00 |
|
Dmitry Stogov
|
26e462fa42
|
Add more folding rules
|
2023-03-29 14:07:31 +03:00 |
|
Dmitry Stogov
|
1058cde808
|
Cleanup instruction selector
|
2023-03-29 01:21:54 +03:00 |
|
Dmitry Stogov
|
e4b618ad00
|
Fix fusion of IF(_, CMP(AND(_, _) 0))
|
2023-03-28 19:03:06 +03:00 |
|
Dmitry Stogov
|
2940f9e281
|
Remove *.ir and *.out files for passed tests and generate *.exp and *.diff for all failed tests
|
2023-03-28 18:06:35 +03:00 |
|
Dmitry Stogov
|
2cf5f1a7ff
|
typo
|
2023-03-28 16:59:46 +03:00 |
|
Dmitry Stogov
|
f058ecfc93
|
Prefer IR_TARGET_* checks instead of system specific macros
|
2023-03-28 13:40:44 +03:00 |
|
Dmitry Stogov
|
37b94c3f04
|
Fix 32-bit clang build
|
2023-03-28 13:20:54 +03:00 |
|
Dmitry Stogov
|
ba0fa44447
|
Add "const" modifiers
|
2023-03-28 13:18:12 +03:00 |
|
Dmitry Stogov
|
52ab3439d1
|
Merge pull request #20 from weltling/fixups_00
fixups: Minor improvements to ir.h, ir_builder.h and ir_init
|
2023-03-28 10:26:30 +03:00 |
|
Anatol Belski
|
d0b4f108ee
|
ir_init: Accept flags as an additional arguments
Signed-off-by: Anatol Belski <ab@php.net>
|
2023-03-28 00:00:45 +02:00 |
|
Anatol Belski
|
b701684704
|
ir_init: Expose min limit for constants and instructions
Signed-off-by: Anatol Belski <ab@php.net>
|
2023-03-28 00:00:45 +02:00 |
|
Anatol Belski
|
f55b9b094b
|
doc: Add short comments to some flags
Signed-off-by: Anatol Belski <ab@php.net>
|
2023-03-28 00:00:44 +02:00 |
|
Anatol Belski
|
091a24d53f
|
C++: Add guards for relevant headers
Signed-off-by: Anatol Belski <ab@php.net>
|
2023-03-27 00:49:38 +02:00 |
|
Dmitry Stogov
|
2392f546bf
|
Improve merging of sorted lists
|
2023-03-24 12:42:41 +03:00 |
|
Dmitry Stogov
|
46f07a8222
|
Remove unnecessary checks
|
2023-03-24 00:51:08 +03:00 |
|
Dmitry Stogov
|
72a5649236
|
Reorder conditions and avoid reloading
|
2023-03-23 23:44:59 +03:00 |
|
Dmitry Stogov
|
7e687262f7
|
Remove always true conditions
|
2023-03-23 22:16:05 +03:00 |
|
Dmitry Stogov
|
2406b13359
|
Improve graph visualization
|
2023-03-23 03:22:13 +03:00 |
|
Dmitry Stogov
|
6d36fb12c3
|
Fix example code and test
|
2023-03-23 00:54:47 +03:00 |
|
Dmitry Stogov
|
24e8e216a1
|
Remove a "reference" edge from LOOP_END to LOOP_BEGIN node.
|
2023-03-23 00:47:27 +03:00 |
|
Dmitry Stogov
|
f5e84ec44c
|
Simplify compilation pipeline
|
2023-03-22 23:58:08 +03:00 |
|
Dmitry Stogov
|
ccbf3da286
|
Add test
|
2023-03-22 22:09:25 +03:00 |
|
Dmitry Stogov
|
83edc3f8a1
|
Disable LICM for overflow checking math
|
2023-03-22 12:07:05 +03:00 |
|
Dmitry Stogov
|
b1f2167ea5
|
Calculate number of ENTRY blocks during CFG construction to avoid an eaxtra loop for ctx->entries[] gathering at ir_match()
|
2023-03-22 10:21:56 +03:00 |
|
Dmitry Stogov
|
e5abfc119d
|
Print BIND-ing information for LOAD nodes
|
2023-03-21 18:06:47 +03:00 |
|
Dmitry Stogov
|
ba56eb5497
|
Fix typo
|
2023-03-21 17:07:21 +03:00 |
|
Dmitry Stogov
|
50b3a7df35
|
Don't print BIND-ing information for removed nodes (replaced by NOPs)
|
2023-03-21 13:53:06 +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
|
7ddca6d7b6
|
Merge pull request #19 from weltling/ir_test_ws
ir_test: Ident and whitespace fixes
|
2023-03-20 09:38:58 +03:00 |
|
Anatol Belski
|
d7b280004a
|
ir_test: Ident and whitespace fixes
Signed-off-by: Anatol Belski <ab@php.net>
|
2023-03-18 19:25:33 +01:00 |
|
Dmitry Stogov
|
8871550542
|
Show EBTRY nodes and "fake" control edges differently
|
2023-03-17 09:20:00 +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
|
09409898ea
|
Reorder instructions to use simpler and more efficient checks
|
2023-03-15 23:49:50 +03:00 |
|
Dmitry Stogov
|
2b4586fa0b
|
Fixed support for irreducible (incomplete) and merged loops
|
2023-03-14 19:54:46 +03:00 |
|
Dmitry Stogov
|
fca6ba0a8a
|
Remove unnecessary output
|
2023-03-13 11:28:36 +03:00 |
|
Dmitry Stogov
|
0d3a9f3eaa
|
Merge pull request #9 from weltling/ir_test_cxx
test: Switch from ir-test.php to a C++ test runner
|
2023-03-13 11:08:58 +03:00 |
|
Dmitry Stogov
|
f6e8a1b971
|
Cleanup ir_ctx.control usage
|
2023-03-10 16:02:53 +03:00 |
|
Anatol Belski
|
9295eae8fa
|
ci: Adjust yaml for C++ test runner
- Lift dependency on PHP for tests
- Add g++ dependency
Signed-off-by: Anatol Belski <ab@php.net>
|
2023-03-10 01:28:19 +01:00 |
|
Anatol Belski
|
5862d6a787
|
makefile: Integrate new test runner
This replaces the PHP script with the C++ implementation.
Signed-off-by: Anatol Belski <ab@php.net>
|
2023-03-10 01:28:19 +01:00 |
|
Anatol Belski
|
831d121ef8
|
tests: Implement test runner in C++
Signed-off-by: Anatol Belski <ab@php.net>
|
2023-03-10 01:28:19 +01:00 |
|
Dmitry Stogov
|
5052a6ca97
|
Fix stack alignment and allow non-saved permanent registers in the "fixed" frames
|
2023-03-07 21:38:27 +03:00 |
|