1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-11-23 08:32:39 +00:00
Commit Graph

1111 Commits

Author SHA1 Message Date
jespergravgaard
a180a4c0b4 Implemented call parameter type checking in pass 1. 2019-06-08 15:01:44 +02:00
Jesper Gravgaard
d58c46e46f Added two struct value error tests. 2019-06-07 13:46:36 +02:00
jespergravgaard
0dcd739507 Implemented struct value call parameter passing by unwinding. 2019-06-07 09:31:14 +02:00
jespergravgaard
c995a1bca1 Implemented struct value member-centric optimization (converting simple struct variables to each member.) 2019-06-07 00:14:42 +02:00
jespergravgaard
0bebae430d Merged masters 2019-06-03 22:28:02 +02:00
jespergravgaard
d52fbcb6b6 Added two tests for statement sequence locality. 2019-06-03 22:26:21 +02:00
Jesper Gravgaard
2f900a9102 Tests exploring sub-expression optimization. 2019-06-03 12:19:47 +02:00
Jesper Gravgaard
8289676723 Fixed test output 2019-06-03 11:01:27 +02:00
Jesper Gravgaard
0ff52448f1 Added test for void-parameter lists. 2019-06-03 10:36:20 +02:00
jespergravgaard
9ad3879e52 New type system fixes pointer to pointer casts. Closes #166 2019-06-03 08:58:23 +02:00
jespergravgaard
7a4d3fff47 New type system fixed loHhi-operator on constant values. Closes #95 2019-06-03 01:51:25 +02:00
jespergravgaard
7535f4d4c1 New type system fixed addition sequence. Closes #132 2019-06-03 01:44:16 +02:00
jespergravgaard
8e1add7d04 New type system fixed constant casting. Closes #164 2019-06-03 01:40:55 +02:00
jespergravgaard
2e021392d2 Fixed encoding problem 2019-06-03 01:12:56 +02:00
jespergravgaard
526bfbb60c Added support for converting non-boolean conditions to boolean. Fixed problem with ranged for iterating signed bytes. Closes #135 2019-06-03 00:44:46 +02:00
Jesper Gravgaard
45471f6848 Implemented syntax supporting string character encodings. Closes #59 2019-06-02 17:25:04 +02:00
jespergravgaard
8947882e20 Moved zero-page coalesce to an optimization option. 2019-05-31 23:17:57 +02:00
jespergravgaard
67a198c48f Updated number type test. Closes #181 2019-05-31 20:19:23 +02:00
jespergravgaard
487c06fbbc Removed -O0 switch 2019-05-31 18:51:39 +02:00
jespergravgaard
8925a57955 Cached phi transition calculations yilding significantly faster compilation of complex programs. 2019-05-31 18:20:03 +02:00
jespergravgaard
b6ee63ea9f Caching effective alive for each call path. 2019-05-31 15:48:20 +02:00
jespergravgaard
97f6051b12 Fixed static optimization problem not detecting modified memory. Fixed thread problem not handling global variables properly. Added compiler switch -O0 doing less optimization for faster compiles. 2019-05-31 12:46:50 +02:00
jespergravgaard
29aa5322b2 Fixed issue with const/label. 2019-05-31 01:56:59 +02:00
jespergravgaard
ecf4181ce1 Fixed tests (added missing toString(). Changed global reserve directiveu to #reserve(zp,zp,zp,...). Added global directive specifying code address #zp(addr). Closes #190 2019-05-30 23:50:26 +02:00
jespergravgaard
b755cd448f Readded cfg/log/sym-files to tests 2019-05-30 22:29:07 +02:00
jespergravgaard
036724c92d Readded nop cast inlining - and fixed some recursion problems. 2019-05-30 21:38:12 +02:00
jespergravgaard
33b75c3db6 Merged 181-type-system 2019-05-30 17:55:53 +02:00
Jesper Gravgaard
ef953a12b4 Added some pointer-based struct tests (simulating the ASM we want for array indexing). 2019-05-29 17:45:17 +02:00
jespergravgaard
007985111a Temporary implementation for arrays of structs 2019-05-29 08:05:34 +02:00
jespergravgaard
837104f4fd Working on structs 2019-05-28 22:56:52 +02:00
jespergravgaard
9c682e37fe Testing structs 2019-05-28 22:28:17 +02:00
Jesper Gravgaard
30d6878ade Minimalistic struct example working with several shortcuts in the code. 2019-05-27 08:39:59 +02:00
Jesper Gravgaard
75af42ad3f Added struct syntax 2019-05-24 23:00:13 +02:00
Jesper Gravgaard
e46fd03ec5 Added support for string concatenation C style (using simple space separation).
Fixed tests.
2019-05-24 20:57:43 +02:00
jespergravgaard
3376a462fc Fixed number range test 2019-05-24 18:02:42 +02:00
jespergravgaard
999afdcbc7 Fixed 2/3. One remaining! 2019-05-24 09:02:31 +02:00
jespergravgaard
c42156c4e9 Working in unumber/snumber. Updated test files. 2019-05-24 00:52:30 +02:00
jespergravgaard
f574bb676c Working in unumber/snumber. Only few failing tests. 2019-05-24 00:50:48 +02:00
jespergravgaard
9ef7c69c3e Improved comparisons to avoid branch/jmp sequences by negating comparisons. 2019-05-23 17:50:44 +02:00
jespergravgaard
06147e2634 Moved malloc/free trivial implementations to stdlib 2019-05-23 15:48:34 +02:00
jespergravgaard
430c128cc3 Simplified constant inlining pass2 2019-05-23 12:33:15 +02:00
jespergravgaard
682d007ba8 Replaced Pass1EliminiateEmptyBlocks with PassNCullEmptyBlocks (which was removed from pass 2). 2019-05-23 12:19:20 +02:00
jespergravgaard
01e833681a Improved planned sequence for A->B->C sequences where B is conditional successor of A. 2019-05-23 12:02:52 +02:00
jespergravgaard
d5ebe81c21 Eliminated two redundant pass2 steps 2019-05-23 07:41:18 +02:00
jespergravgaard
1df77d5ded Collected all type inference in pass2 together. 2019-05-23 07:39:10 +02:00
jespergravgaard
fdbfa68c1c Eliminated Pass2EliminateRedundantCasts. 2019-05-23 07:12:52 +02:00
jespergravgaard
009b141ef1 Eliminated PassNDowngradeConstantTypeConversion. Simplified PassNAddTypeConversionAssignment. 2019-05-23 01:07:59 +02:00
jespergravgaard
2a14671496 Renamed for clarity 2019-05-23 00:46:43 +02:00
jespergravgaard
65c92716f0 Cleaning up type inference. 2019-05-23 00:38:35 +02:00
jespergravgaard
49a61ecbdd Cleaning up type inference. 2019-05-23 00:28:34 +02:00