Jonas Maebe
|
cb96acefc9
vector support: check supported type during parsing already
|
2 years ago |
florian
|
f9a4631adf
* don't switch a+/-/sqr(b) into an fma statement if b is too complex
|
3 years ago |
florian
|
f6b5c513bb
* patch by Rika: makes #39786 work on more setups, resolves #39786
|
3 years ago |
florian
|
fcb5531fbc
* convert a+/-const1-/const2 in into a+/-(-const1)+(-const2) to enable further optimizations, resolves #39782
|
3 years ago |
florian
|
95dfccbb5e
* do not optimize away +0.0 if no fastmath is passed as -0.0+(+0.0)=+0.0
|
3 years ago |
florian
|
94665a40d7
* optimize a-const1-const2 when const1 and const2 are real constants and fast math is on, part of fixing #39782
|
3 years ago |
Jonas Maebe
|
573f2c20d7
taddnode.cmp_of_disjunct_ranges: fortify in case of programs with errors
|
3 years ago |
Sergey Larin
|
60c967f255
Optimized the comparison of a widestring variable with ''
|
3 years ago |
Sergey Larin
|
35db2b2da3
Fixed optimization `Length(W)=0` -> `(Pointer(W)=nil) or (PLongword(Pointer(W)-4)^=0)` for WideString
|
3 years ago |
florian
|
81c8078735
* reorder string expressions with parentheses so fpc_*_concat_multi can be used efficiently, resolved #39479
|
3 years ago |
florian
|
f21f7f0f50
* handle result type of unsigned ordinal operations in ISO/Extpas mode similiar to TP, solves
|
3 years ago |
florian
|
e132ae2fee
* last commit was not correct, fixed
|
3 years ago |
florian
|
bf5f37b14a
* fix conditional statement as pointed out by Sergey Larin
|
3 years ago |
florian
|
6404478ea4
* cleanup of VER3_0 defines
|
3 years ago |
florian
|
292be9029e
* when converting a*a into sqr(a), set the result type correctly
|
3 years ago |
florian
|
5a617cd108
+ fold real constants c1,c2 for v+c1+c2 or c1+(c2+v) (+ being either + or *) as well if fastmath is enabled
|
3 years ago |
florian
|
ff3acfb8cd
* cleanup of 2.7.0 defines
|
3 years ago |
florian
|
08050086b9
* keep type when removing "1*", resolves #38840
|
3 years ago |
florian
|
00d4a6889d
* add no internal flag when folding constants in taddnode.simplify, resolves #39308
|
3 years ago |
florian
|
8cb92fd49a
* simplify real expressions involving unary minus
|
3 years ago |
Pierre Muller
|
33ad038bbb
* Avoid some wrong error messages after initial error
|
3 years ago |
florian
|
3069d74ecc
* handle constant folding correctly for <pointer>+<ord. constant>+<ord. constant>, resolves #39332
|
4 years ago |
Yuriy Sydorov
|
6a3f32ba69
* optimize tests for a single bit "(a and one_bit_mask_const) = <> one_bit_mask_const" into "(a and one_bit_mask_const) <> = 0" to enable further CPU specific optimizations.
|
4 years ago |
florian
|
83ce289ea4
* last commit fixed, hopefully final fix
|
4 years ago |
florian
|
f448603970
* improved last commit, better handling of boolean expressions
|
4 years ago |
florian
|
62bd0068b6
* do not apply the (a and b) or (c and not(b)) into c xor ((c xor a) and b) optimziation if short boolean evaluation is used, should resolve #38576
|
4 years ago |
florian
|
e0a1bc6675
+ optimize (a and b) or (c and not(b)) into c xor ((c xor a) and b)
|
4 years ago |
florian
|
272a0e3e26
+ apply excess precision also to unary minus nodes
|
4 years ago |
yury
|
64c586b86d
* Removed/ifdefed lots of unused variables.
|
4 years ago |
florian
|
12adb47d65
* clean up
|
4 years ago |