Irmen de Jong
|
07c606bfc9
|
optimizer: don't replace for loop with repeat loop (the loop variable might be used elsewhere!)
|
2023-07-05 21:16:17 +02:00 |
|
Irmen de Jong
|
204f5591a9
|
todos
|
2023-07-03 21:57:32 +02:00 |
|
Irmen de Jong
|
eae41de27d
|
improve errors generated for undefined symbols
|
2023-06-25 15:19:51 +02:00 |
|
Irmen de Jong
|
a587482edf
|
optimize dangling else
|
2023-06-18 13:46:02 +02:00 |
|
Irmen de Jong
|
c0b398e0ce
|
add various math.atan() routines
|
2023-06-17 00:43:33 +02:00 |
|
Irmen de Jong
|
a521982576
|
fix subroutine inline problem with strings
|
2023-06-09 21:45:05 +02:00 |
|
Irmen de Jong
|
39eda67867
|
Merge branch 'master' into split-arrays
# Conflicts:
# examples/test.p8
|
2023-05-28 13:28:43 +02:00 |
|
Irmen de Jong
|
a99d38fdaa
|
Merge branch 'v8_maintenance'
# Conflicts:
# examples/test.p8
|
2023-05-28 13:26:05 +02:00 |
|
Irmen de Jong
|
0eb2d437e2
|
fix compiler error and codegen fault on signed value bitwise operation
|
2023-05-28 13:13:11 +02:00 |
|
Irmen de Jong
|
c94e292176
|
more split array stuff
|
2023-05-27 12:47:11 +02:00 |
|
Irmen de Jong
|
b43223cb7a
|
added clamp() builtin function and floats.clampf()
|
2023-05-17 23:12:58 +02:00 |
|
Irmen de Jong
|
92062d056d
|
divmod() now works on multiple data types including float.
divmodw() has been removed
|
2023-05-02 01:19:53 +02:00 |
|
Irmen de Jong
|
06368ab0a1
|
sqrt() now works on multiple data types including float.
no need to use floats.sqrtf() anymore
|
2023-05-02 01:19:53 +02:00 |
|
Irmen de Jong
|
38efe25c68
|
abs() now works on multiple data types including float.
no need to use floats.fabs() anymore
|
2023-05-02 01:19:53 +02:00 |
|
Irmen de Jong
|
025bf900a5
|
min max docs, added floats.minf() and maxf()
|
2023-05-02 01:19:53 +02:00 |
|
Irmen de Jong
|
c07eda15b1
|
adding min() and max()
|
2023-05-02 01:19:53 +02:00 |
|
Irmen de Jong
|
0bea721c2e
|
docs
|
2023-04-27 01:26:25 +02:00 |
|
Irmen de Jong
|
b6a837cbea
|
fix boolean array with initialization value
|
2023-04-04 22:11:51 +02:00 |
|
Irmen de Jong
|
d265271148
|
fix rpn variable depth clobber and type error
|
2023-03-20 22:18:10 +01:00 |
|
Irmen de Jong
|
6e4ae034b2
|
more Rpn optimizations
|
2023-03-19 00:48:12 +01:00 |
|
Irmen de Jong
|
1152191f48
|
add optimization: replace simple for loops by repeat loop
|
2023-03-15 21:11:37 +01:00 |
|
Irmen de Jong
|
fd25e85d59
|
added unroll loop construct
|
2023-03-14 23:37:49 +01:00 |
|
Irmen de Jong
|
dc32318cec
|
fix possible string error on inlined subroutines
|
2023-03-12 18:16:48 +01:00 |
|
Irmen de Jong
|
ebd9f1471b
|
fix crash when using const word as pointer and implement 2 missing assign codegen paths
|
2023-03-11 15:39:03 +01:00 |
|
Irmen de Jong
|
a636d3f394
|
give correct error on attempt to const array
|
2023-03-10 23:46:13 +01:00 |
|
Irmen de Jong
|
96996bf18e
|
be less aggressive with translating adds/subs into auto inc/decrements, to avoid code bloat
|
2023-03-10 23:01:55 +01:00 |
|
Irmen de Jong
|
b7a6f3ec75
|
fix compiler not optimizing x+=1 into x++ anymore
|
2023-03-10 02:45:25 +01:00 |
|
Irmen de Jong
|
fc253237c9
|
fix issues with reporting inlined subroutines as unused
|
2023-03-07 23:47:14 +01: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
|
540b3ae2f4
|
tweak BinaryExpression splitting
|
2023-02-28 21:45:38 +01:00 |
|
Irmen de Jong
|
fb9902c536
|
avoid const fold loop on const bool thing=true
fixes #97
|
2023-02-22 21:27:08 +01:00 |
|
Irmen de Jong
|
bceaebe856
|
fix crash on sort/reverse unused arrays
fixes #95
|
2023-02-14 00:26:29 +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
|
b526e132a7
|
better warning + don't remove non-trivial initializer expression for unused variables
|
2022-12-24 17:22:30 +01:00 |
|
Irmen de Jong
|
ca7932c4f0
|
no longer do return value optimization with tempvar, this caused invalid code sometimes.
|
2022-12-14 22:33:16 +01:00 |
|
Irmen de Jong
|
0694a187d7
|
unsigned>0 now optimized into unsigned!=0
|
2022-12-12 20:37:57 +01:00 |
|
Irmen de Jong
|
f2273c0acc
|
fix several FP rom routine addresses on cx16.
|
2022-12-03 19:56:54 +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
|
8f3aaf77a1
|
fix optimizer hanging on uword xx :: xx >>= 8 / xx=msb(xx)
|
2022-11-15 01:40:13 +01:00 |
|
Irmen de Jong
|
562d722ad5
|
codegen: added missing codegen for float array inplace modification
|
2022-11-03 20:08:46 +01:00 |
|
Irmen de Jong
|
144c1ba3a6
|
ir: fix float instruction value in formatspec
|
2022-11-03 19:08:38 +01:00 |
|
Irmen de Jong
|
5b35232ab4
|
fix "fpReg1 out of bounds" crash for vm target for in-place float array assignment. #85
|
2022-10-29 17:04:39 +02: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
|
af6be44676
|
ir: adding register usage inspections
fix compiler problems with untrimmed inlined asm, and when only a single return statement is present in a subroutine
|
2022-09-30 20:25:00 +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 |
|