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 лет назад |
florian
|
83ce289ea4
* last commit fixed, hopefully final fix
|
4 лет назад |
florian
|
f448603970
* improved last commit, better handling of boolean expressions
|
4 лет назад |
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 лет назад |
florian
|
e0a1bc6675
+ optimize (a and b) or (c and not(b)) into c xor ((c xor a) and b)
|
4 лет назад |
florian
|
272a0e3e26
+ apply excess precision also to unary minus nodes
|
4 лет назад |
yury
|
64c586b86d
* Removed/ifdefed lots of unused variables.
|
4 лет назад |
florian
|
12adb47d65
* clean up
|
4 лет назад |
florian
|
3109005791
+ fold also (string const+(string const+string var))
|
4 лет назад |
florian
|
7de94e7a1d
* properly fold string+string const+string const., resolves #38267
|
4 лет назад |
florian
|
e6037961e3
* refactored constant folding code
|
4 лет назад |
florian
|
97abf6b495
* first part of fixing #38267: do not bail out early during constant folding
|
4 лет назад |
florian
|
4f3a21eeec
* don't do x*x -> optimziation for xtensa as it causes a recursive call in sqr(...)
|
4 лет назад |
florian
|
6380df9b42
* correctly simplify tree transforms of (a+c1+c2) if a is a pointer, resolves #37671
|
4 лет назад |
florian
|
98eab07abd
* simplified and fixed code of (v1=const1) and (v2=const2) optimization, resolves #38066
|
4 лет назад |
florian
|
ff31d95a69
* excess precision should not be applied to comp or currency
|
4 лет назад |
florian
|
13f1fb60b4
* directly copy the result of set <op> set into the left side of an assignment
|
4 лет назад |
Jonas Maebe
|
0729340817
* try_make_mul32to64: restore original node order if transformation failed
|
4 лет назад |
Jonas Maebe
|
099134b545
* fix try_make_mul32to64() if it's called with a constant node on the
|
4 лет назад |
florian
|
637976e83f
* patch by Marģers to unify internal error numbers, resolves #37888
|
4 лет назад |
florian
|
65047cecdb
+ optimize comparisons of constant pointers
|
4 лет назад |
florian
|
e124b07e86
+ evaluate typeinfo(<type1>)=/<>typeinfo(<type2>) at compile time, resolves #30260
|
4 лет назад |
Jonas Maebe
|
aa75d39ab5
* don't perform "(x=y) or (z=u)" -> "(x xor y) or (z xor u)" optimization
|
4 лет назад |
yury
|
6878ffbf04
* In the TP mode for 16-bit CPUs uint8+uint8 is extended to sint16+sint16. This is TP compatible.
|
5 лет назад |
florian
|
18b8b9c566
* do not apply range test optimization if the variable is a string being compared against a char constants, resolves #37476
|
5 лет назад |
florian
|
d7ba09f543
* insert type casts when creating new unaryminus nodes during simplification, resolves #37508
|
5 лет назад |
florian
|
e14a3f17e6
* reverted r46220 as it is fixed now properly
|
5 лет назад |
yury
|
719220e8a4
* For 8/16 bit CPUs and TP mode, disable expansion to a larger integer type for subtract operations on unsigned integers. This is TP7 compatible.
|
5 лет назад |
svenbarth
|
c17ad509e2
* fix for Mantis #36775: apply patch by J. Gareth Moreton
|
5 лет назад |
Jonas Maebe
|
346adf7f55
* replace explicit (sometimes incomplete) tests with calls to doshortbooleval()
|
5 лет назад |