Irmen de Jong
|
53df0eb707
|
cleanups
|
2024-04-10 22:04:03 +02:00 |
|
Irmen de Jong
|
ad4880997a
|
no operand swap on logical expressions with shortcircuit evaluation (and,or are no longer associative!)
|
2024-03-20 22:34:48 +01:00 |
|
Irmen de Jong
|
a94cfd34f5
|
don't apply absorption law on functioncall operands
|
2024-03-15 01:04:27 +01:00 |
|
Irmen de Jong
|
3535c1acda
|
fix broken boolean != comparison optimization
|
2024-03-13 20:23:42 +01:00 |
|
Irmen de Jong
|
9826d7c494
|
optimize certain boolean comparisons more
|
2024-03-05 03:09:53 +01:00 |
|
Irmen de Jong
|
7d8cdcbfea
|
more bool fixes and optimizations in codegen
|
2024-03-02 23:19:39 +01:00 |
|
Irmen de Jong
|
6b87cbb703
|
optimizers
|
2024-03-02 23:19:20 +01:00 |
|
Irmen de Jong
|
01bbc2234e
|
fix absorption law optimization, add 2 additional optimizations
|
2024-02-14 23:12:54 +01:00 |
|
Irmen de Jong
|
d4a2031c07
|
fix certain assignment data type mismatch crash
|
2024-01-25 21:14:20 +01:00 |
|
Irmen de Jong
|
e0de662f8e
|
fix signed word bitshift right (>8 shifts)
|
2024-01-16 01:08:16 +01:00 |
|
Irmen de Jong
|
45a9751217
|
fix type of optimized lsb() / mkword() arguments when signed.
printast1 command line option now also works in case of compilation errors.
|
2024-01-10 23:57:44 +01:00 |
|
Irmen de Jong
|
d85c347a6c
|
optimize /256 more, and fixed a unsigned byte word cast error
|
2024-01-07 02:34:05 +01:00 |
|
Irmen de Jong
|
7dd758a753
|
better optimize WORD & $xx00 , WORD & $00xx
|
2024-01-06 22:01:21 +01:00 |
|
Irmen de Jong
|
8e6b91cb9e
|
some optimizations
|
2024-01-06 00:44:00 +01:00 |
|
Irmen de Jong
|
f2daa17b92
|
tweak some not optimizations
cleanup IR typestring
|
2024-01-05 17:49:56 +01:00 |
|
Irmen de Jong
|
6d9fccacb1
|
boolean not expression tweaks and optimizations
|
2024-01-05 13:32:16 +01:00 |
|
Irmen de Jong
|
37638e7ed0
|
added Absorption laws optimization
|
2024-01-05 00:36:47 +01:00 |
|
Irmen de Jong
|
204f5591a9
|
todos
|
2023-07-03 21:57:32 +02:00 |
|
Irmen de Jong
|
1436480eab
|
added a few more comparison expression optimizations
|
2023-03-04 16:01:40 +01:00 |
|
Irmen de Jong
|
fd269453a4
|
todos
|
2023-03-04 14:14:01 +01:00 |
|
Irmen de Jong
|
002006517a
|
rewrite bool=bool^1 into bool=not bool
|
2022-12-29 19:42:38 +01:00 |
|
Irmen de Jong
|
0694a187d7
|
unsigned>0 now optimized into unsigned!=0
|
2022-12-12 20:37:57 +01:00 |
|
Irmen de Jong
|
df1793efbf
|
fixed: word << 12 is suddenly an uword (with optimizer on)
|
2022-11-15 03:00:41 +01:00 |
|
Irmen de Jong
|
6830e15b4e
|
print warning when bit shifts are too large and result in 0. #83
|
2022-10-29 15:23:39 +02:00 |
|
Irmen de Jong
|
101b33c381
|
split intermediate representation into separate module
|
2022-09-13 23:06:05 +02:00 |
|
Irmen de Jong
|
18790d867c
|
optimize conditional expression WORD & $ff00 to just msb(WORD)&$ff
|
2022-08-12 00:21:44 +02:00 |
|
Irmen de Jong
|
4d840c7db8
|
optimized mkword(0, X)
|
2022-08-11 22:51:09 +02:00 |
|
Irmen de Jong
|
4d2b21816d
|
optimized uword <<8 and >>8
|
2022-08-11 22:25:15 +02:00 |
|
Irmen de Jong
|
68abda1219
|
fix a few small compiler errors (removing functioncall, removing block, assigning virtual register return value)
|
2022-08-09 23:38:29 +02:00 |
|
Irmen de Jong
|
046dceb5c2
|
added optimized case for signed division by 2
|
2022-07-24 13:59:35 +02:00 |
|
Irmen de Jong
|
dcc1f00048
|
fix rounding errors in signed divide by power-of-two
The optimized bit-shifting division is removed (for now)
|
2022-07-24 12:34:55 +02:00 |
|
Irmen de Jong
|
35af53828a
|
fix endless loop in optimizer, fix cx16 register clobbering in psg interrupt handler, fix crash on certain arrays, fix undefined symbol when it's in another imported module
|
2022-07-13 18:42:06 +02:00 |
|
Irmen de Jong
|
68da661edc
|
optimize comparison to true/1 into comparison to zero, optimize while/until conditions
|
2022-07-11 16:42:52 +02:00 |
|
Irmen de Jong
|
bdb7de34be
|
added several compiler checks against weird boolean type use in expressions
|
2022-07-07 22:23:56 +02:00 |
|
Irmen de Jong
|
7fff4f249d
|
optimize msb(cx16.r0) -> cx16.r0H, lsb(cx16.r0) -> cx16.r0L
|
2022-07-02 21:38:22 +02:00 |
|
Irmen de Jong
|
965340ff90
|
logical and/or/xor/not all replaced by bitwise &,|,^,~ (ast, codegens)
this also fixed some invalid outcomes of logical expressions!
|
2022-07-02 00:38:17 +02:00 |
|
Irmen de Jong
|
435d6f6f3f
|
vm: and/or/xor/not are all bitwise operations again
|
2022-06-28 03:17:51 +02:00 |
|
Irmen de Jong
|
775c85fc18
|
don't swap operands that would change function evaluation order + vm: fix label casing error
|
2022-06-13 00:25:45 +02:00 |
|
Irmen de Jong
|
5a756aaed9
|
Pipe expression "|>" removed from the language
|
2022-06-12 18:41:42 +02:00 |
|
Irmen de Jong
|
dca092fd7c
|
fix pipe expression when start term is constant number
|
2022-06-12 16:59:28 +02:00 |
|
Irmen de Jong
|
c6e92ecac4
|
some code cleanup
|
2022-06-12 16:15:08 +02:00 |
|
Irmen de Jong
|
220246278a
|
removed sum(), max(), min(). abs() now always returns uword type.
This greatly simplifies internal handling of builtin functions by always having one fixed return type.
|
2022-04-14 00:21:16 +02:00 |
|
Irmen de Jong
|
207a7e5160
|
move operator lists
|
2022-04-10 13:24:17 +02:00 |
|
Irmen de Jong
|
ed30108961
|
removed '**' power-operator. Use floats.pow() instead.
|
2022-03-27 13:16:34 +02:00 |
|
Irmen de Jong
|
3961f26635
|
consolidating modules
|
2022-03-11 20:45:39 +01:00 |
|
Irmen de Jong
|
e75d0c58a9
|
reducing dependencies
|
2022-03-10 23:46:43 +01:00 |
|
Irmen de Jong
|
9a798360f4
|
introduced codeAst and codeCore modules to reduce dependencies
|
2022-03-10 22:38:16 +01:00 |
|
Irmen de Jong
|
251b6fcf70
|
reducing dependencies
|
2022-03-10 02:09:34 +01:00 |
|
Irmen de Jong
|
fc1c3c6808
|
working on altered pipe syntax
|
2022-03-02 20:58:38 +01:00 |
|
Irmen de Jong
|
96ba895b84
|
working on altered Pipe syntax
|
2022-02-27 02:42:28 +01:00 |
|