1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-12-28 01:29:44 +00:00
Commit Graph

1764 Commits

Author SHA1 Message Date
jespergravgaard
e9eeafd170 Fixed a few errors introduced by condition simplification rewrite. Added a fragment. 2020-02-25 09:26:05 +01:00
jespergravgaard
5fd74a8d39 Improved tetris code by inlining two kickasm-arrays. 2020-02-24 22:39:09 +01:00
jespergravgaard
19b145c207 Implemented immediate variables for preserving the value of load/store variables used in simple conditions that are inlined. #359 2020-02-23 20:57:53 +01:00
jespergravgaard
6862698fb7 Eliminated redundant methods got getting assignments/usages in Pass2SsaOptimization. 2020-02-23 19:26:53 +01:00
jespergravgaard
2961c84bd7 Working on improving the condition simplification. 2020-02-23 10:04:51 +01:00
jespergravgaard
5ffae4d92a Added C-source to generated test ASM. 2020-02-23 09:44:36 +01:00
jespergravgaard
dc6175a0b6 Working on fixing #359 problem with load/store variables and simple-conditionals. 2020-02-22 20:45:35 +01:00
jespergravgaard
d33c84488a Fixed a few tests. 2020-02-22 12:06:47 +01:00
jespergravgaard
7dacbb2c75 Fixed code for __ma. 2020-02-15 09:30:27 +01:00
jespergravgaard
f45ba8eb10 Fixed early constant identification. Added test for constant initValue. 2020-02-15 09:00:57 +01:00
jespergravgaard
7b8488ef29 Fixed the last __ma exceptions. 2020-02-14 23:01:56 +01:00
jespergravgaard
3770874860 Unrolled condition variables are now converted to SSA automatically in pass 1. 2020-02-14 15:55:04 +01:00
jespergravgaard
d0bc5af94b Now identifying USE's that are also DEFINE's as unused. 2020-02-14 10:57:29 +01:00
jespergravgaard
0beeab9be2 Refactored live ranges to work for multiple-assign variables. The price is that a few unused variables are no longer optimized away since they depend only on them selves. See duplace-loop-problem.kc. 2020-02-14 00:32:19 +01:00
Jesper Gravgaard
a5d14105d8 Fixed const in test. 2020-02-13 18:26:52 +01:00
Jesper Gravgaard
f92e750b61 Fixed removal of unused vars. 2020-02-13 13:46:54 +01:00
jespergravgaard
f106f953a8 Working on memory model ma_mem. Added some support for local static variables. 2020-02-13 11:36:27 +01:00
jespergravgaard
600a80dbcc Fixed last errors for ssa_mem var-model. 2020-02-12 23:26:20 +01:00
jespergravgaard
687705f5d2 Eliminated old getAssignment() method. 2020-02-12 22:24:29 +01:00
jespergravgaard
3d7914c31f Eliminated old getAssignment() methods. 2020-02-12 22:09:43 +01:00
jespergravgaard
6c4a99240d Eliminated old getAssignment() methods. 2020-02-12 08:21:48 +01:00
jespergravgaard
92acd45493 Eliminated old getAssignment() methods. 2020-02-12 00:47:01 +01:00
jespergravgaard
45019c1116 Fixed test 2020-02-11 22:04:01 +01:00
Jesper Gravgaard
f2ef18829f Improving synthesis 2020-02-11 21:00:04 +01:00
Jesper Gravgaard
ba20025165 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	src/main/java/dk/camelot64/kickc/model/VariableBuilder.java
2020-02-11 18:25:13 +01:00
Jesper Gravgaard
759e17829e Working on fixing ma_mem variable model. Improving synths. 2020-02-11 18:23:19 +01:00
jespergravgaard
2daf1c0f87 Added a few fragments. 2020-02-10 21:57:15 +01:00
jespergravgaard
8fe8773dc1 Fixed fragment tests. Using new VarAssignments method in alias elimination. 2020-02-10 20:14:22 +01:00
Jesper Gravgaard
8f2d766e52 Working on fixing ma_mem variable model. 2020-02-10 18:39:25 +01:00
jespergravgaard
bd9a403b64 Improving ssa_mem variable support. 2020-02-10 00:33:16 +01:00
jespergravgaard
353d45ab65 Improving ssa_mem variable support. 2020-02-09 18:50:17 +01:00
jespergravgaard
9faabae052 Merged memory-variables to main. Includes support for C-standard structs, much better constant identification, much better handling of arrays/structs inside structs, removal of string type, initialization/copying using memcpy/memset and new #pragma var_model(). 2020-02-09 16:54:14 +01:00
jespergravgaard
4f54062a43 Added test with two different variable models. 2020-02-09 15:06:16 +01:00
jespergravgaard
be05569013 Fixed tests 2020-02-09 14:30:27 +01:00
jespergravgaard
a119d38b5e Added a few tests for the new #pragma var_model(). 2020-02-09 12:55:17 +01:00
jespergravgaard
c8523c488e Now using VariableBuilderConfig for setting up SSA/MA & MemoryArea. 2020-02-09 12:44:36 +01:00
Jesper Gravgaard
eed8d58d74 Now using VariableBuilderConfig for SSA/MA. 2020-02-09 11:48:17 +01:00
jespergravgaard
df9bde2ee8 Added pragma var_model(...) for configuring memory and optimization model for variables. 2020-02-08 10:35:43 +01:00
jespergravgaard
f73b048d2e Eliminated SymbolType.STRING 2020-02-06 22:52:23 +01:00
jespergravgaard
a612562dc7 Work in progress: eliminating SymbolType.STRING 2020-02-06 22:29:41 +01:00
jespergravgaard
fda0940062 Work in progress: eliminating SymbolType.STRING 2020-02-06 22:20:53 +01:00
jespergravgaard
a231b7495f Collecting SIZEOF/INDEXOF constants in one class. Dropping defunct struct pointer rewrite pass. 2020-02-06 19:22:56 +01:00
jespergravgaard
13ab7e8da3 Removed unnecesary address-of handling. 2020-02-06 18:19:02 +01:00
jespergravgaard
45ad6b64b0 Dropped inferred volatile. 2020-02-06 18:07:56 +01:00
jespergravgaard
1a978bc82d Fixed struct address-of handling. 2020-02-06 15:40:27 +01:00
jespergravgaard
345b154264 Removed all old unwinding code. 2020-02-06 10:18:46 +01:00
jespergravgaard
b9cdfa5f39 Removed all the old unwinding code. 2020-02-06 09:49:32 +01:00
jespergravgaard
64afa1791e Call parameters rewrite now using ValueSources. 2020-02-06 01:26:46 +01:00
jespergravgaard
8a3039112b Call LValue rewrite now using ValueSources. 2020-02-06 01:19:34 +01:00
jespergravgaard
0057e16517 StructMemberReferences rewrite now using ValueSources. 2020-02-06 01:08:55 +01:00
jespergravgaard
511020649a Working on new ValueSource based unwinding. Most of the old unwinding code is now unused. 2020-02-05 17:29:25 +01:00
Jesper Gravgaard
b17d4ab8fc Unwindings moving to ValueSource 2020-02-05 09:24:55 +01:00
jespergravgaard
0336b18a62 Working on new ValueSource based unwinding!
A few __ptr__ problems in test outputs remain.
2020-02-05 00:45:08 +01:00
jespergravgaard
e1258f943d Working on new ValueSource based unwinding! 2020-02-04 20:52:58 +01:00
jespergravgaard
a50b295c45 Working on new ValueSource based unwinding! 2020-02-03 08:30:17 +01:00
jespergravgaard
ae79e813a2 Added test copying struct value into array. 2020-02-02 23:41:26 +01:00
jespergravgaard
2ebf7b698b Added logging when postponing unwindings. 2020-02-02 23:06:59 +01:00
jespergravgaard
d096790786 Fixed missing BIN-file for NMI sample example code. Closes #357 2020-02-02 22:56:21 +01:00
jespergravgaard
3e5529c0f1 Added 2 complex struct copy tests. 2020-02-02 22:24:25 +01:00
jespergravgaard
ac02d1bbc2 Added missing fragments. 2020-02-02 15:49:20 +01:00
jespergravgaard
1fffef91f5 Added a bunch of complex struct copying tests. 2020-02-02 15:00:14 +01:00
jespergravgaard
9db24ceb01 Removed main return value 2020-02-02 10:24:44 +01:00
jespergravgaard
98ee476b5b Added another struct test. 2020-02-02 09:47:51 +01:00
jespergravgaard
d60a31f188 Merged memvars-328 into memvars-struct. 2020-02-02 09:12:49 +01:00
jespergravgaard
070380b4af Merge branch '328-memvars' into memvars-struct
# Conflicts:
#	src/test/java/dk/camelot64/kickc/test/TestPrograms.java
2020-02-02 09:06:31 +01:00
jespergravgaard
7707e64ad8 Adding Millfork Benchmarks to test suite. 2020-02-02 08:47:47 +01:00
jespergravgaard
4479efb22d Adding Millfork Benchmarks to test suite. 2020-02-01 19:07:52 +01:00
jespergravgaard
5203092d3a Updated to C types. 2020-02-01 10:54:51 +01:00
jespergravgaard
7665387333 Updated to C types. 2020-02-01 10:48:47 +01:00
jespergravgaard
bb3be5655c Updated to C types. 2020-02-01 10:38:53 +01:00
jespergravgaard
d51bfe5c66 Fixed test! 2020-01-20 23:33:25 +01:00
jespergravgaard
3b68c1b33e re-enabled test. 2020-01-20 21:41:14 +01:00
jespergravgaard
bcb617ef58 Removed offending test. 2020-01-20 06:51:13 +01:00
jespergravgaard
68b4794049 Optimized 32-bit plus 8-bit constant fragment. 2020-01-20 00:30:05 +01:00
jespergravgaard
d28bb8245b Changed fragment optimization _plus_2 to only be used for byte values. 2020-01-19 23:37:15 +01:00
jespergravgaard
06a2e00540 Added bulk unwinding for struct pointer derefs. 2020-01-19 22:10:02 +01:00
Jesper Gravgaard
7ea2453733 Refactored unwindings into separate classes for better reuse. 2020-01-19 19:50:04 +01:00
jespergravgaard
a32f783b74 Global struct values are not per default load/store, main-memory. 2020-01-12 22:53:57 +01:00
jespergravgaard
ffdc590b90 Fixed tests 2020-01-12 14:09:16 +01:00
jespergravgaard
a1f490ed49 Fixed tests 2020-01-12 12:28:23 +01:00
jespergravgaard
d5f4b1f690 Init-value of global load/store memory variables is now output directly into data-statements. 2020-01-11 14:55:27 +01:00
jespergravgaard
2eb5aaa24f Added support for init-value of global load/store memory variables. 2020-01-11 13:39:10 +01:00
jespergravgaard
030a379845 Struct values can now be bulk initialized / copied in assignments. Still needs work for global variables and more. 2020-01-09 00:30:16 +01:00
jespergravgaard
26be14f7ee Working on improvements regarding global initializers and unnecessary unwinding of constant structs. Moved most unwinding to separate package. 2020-01-07 08:28:57 +01:00
jespergravgaard
4eaa0c5385 Working on improvements regarding global initializers and unnecessary unwinding of constant structs. Moved most unwinding to separate package. 2020-01-07 00:25:47 +01:00
jespergravgaard
6a9f59cda1 Working on improvements regarding global initializers and unnecessary unwinding of constant structs. Introduced RValueUnwinding for handling a single value. 2020-01-02 14:36:02 +01:00
jespergravgaard
db595d0b53 Structs with array members finally working. However import improvements remain regarding global initializers and unnecessary unwinding of constant structs. 2020-01-02 00:31:29 +01:00
jespergravgaard
8ae248b1c2 Fixed a few error messages 2020-01-01 18:47:33 +01:00
jespergravgaard
7b81b51bc0 Rewrote constant identification to allow nested arrays/structs. TODO: function-as-array 2020-01-01 18:27:53 +01:00
Jesper Gravgaard
4af8b1a833 Added tests for initializing array inside struct using inline string and inline array initializer. 2019-12-29 15:05:24 +01:00
Jesper Gravgaard
2cf4a3c347 Added support for initializing & copying array inside struct using intrinsic memset/memcpy. 2019-12-28 22:33:52 +01:00
jespergravgaard
4bd3d4a6b1 Working on structs with arrays. 2019-12-28 02:14:05 +01:00
jespergravgaard
b72b2f5910 Fixing struct size for structs containing arrays. 2019-12-28 01:59:26 +01:00
jespergravgaard
e8a0478e5f Implemented C-classic struct functionality for loadstore struct variables. Works for most scenarios: declaration, initialization, assignment, member-access. Structs containing arrays not working yet. 2019-12-27 22:35:05 +01:00
jespergravgaard
3b043e11a7 Changed syntax for function signatures. 2019-12-26 09:51:41 +01:00
jespergravgaard
34ca539dd5 Add support for upper/lower case expansion of filename in linker script. Closes #345 2019-12-26 09:28:53 +01:00
jespergravgaard
08d268f130 Added some hardcoded address parameter tests. 2019-12-26 00:57:19 +01:00
jespergravgaard
655dc48b7b Added tests for __address(). VariableBuilder turns __address() into multiple-assignment. Fixed errors for multiple-assignment variables. 2019-12-26 00:17:01 +01:00
jespergravgaard
6ce7ac901e Added another volatile test. 2019-12-25 23:03:40 +01:00
jespergravgaard
32752eb4cb Improved C64 KERNAL loading example. 2019-12-25 20:26:03 +01:00