florian
|
acdff47554
+ optimize integer expressions like 2*x*4; which were not found by the node simplifier yet
|
5 роки тому |
Jonas Maebe
|
d23c7980aa
* properly perform (or not) range/overflow checking when performing constant
|
5 роки тому |
florian
|
cb67577002
* fix length(<dyn. type>)=0 optimization, resolves #36215
|
5 роки тому |
florian
|
ee3258c0da
* optimizing length(<dyn. type>)=0 is not possible for jvm
|
5 роки тому |
florian
|
e80eee5da5
* generate better code for length(<dyn. type>)=0, resolves #36060
|
5 роки тому |
pierre
|
f82cc96cb9
Check that inserttypeconv really change node type to ttypeconvnode before setting convtype field (should fix taddbool.pp bytebool failure on powerpc)
|
6 роки тому |
Jonas Maebe
|
40082100e1
* fixed range test optimization for signed types and enabled it for them
|
6 роки тому |
Jonas Maebe
|
faf75095cd
* synchronised with trunk till r42189
|
6 роки тому |
Jonas Maebe
|
eab079c7bd
* fixed cbool "and" with full boolean evaluation, and cbool "xor"
|
6 роки тому |
Jonas Maebe
|
1b6425176b
* synchronised with trunk till r42049
|
6 роки тому |
Jonas Maebe
|
281b3ad276
* fix case completeness and unreachable code warnings in compiler that would
|
6 роки тому |
florian
|
38be96e586
* allow pointer+ord. const always if the node is created internally
|
6 роки тому |
Jonas Maebe
|
7af95cbf06
* LLVM does not support 128 bits arithmetic on 32 bit platforms, which we
|
6 роки тому |
Jonas Maebe
|
04d295f186
* first step towards supporting 32 bit targets with the LLVM code generator:
|
6 роки тому |
Jonas Maebe
|
d1361ca6ed
* fixed adjustments of lower/upper bounds in range test optimization in case
|
6 роки тому |
yury
|
4357caaad8
* Removed unused local vars.
|
6 роки тому |
florian
|
116f36fe56
* avoid range check errors
|
6 роки тому |
Jonas Maebe
|
0b246f3dbd
* converted Boolean8 to an internal type, and mapped Boolean to the
|
6 роки тому |
pierre
|
293973b306
Add missing setting of expectloc for multiplications
|
6 роки тому |
florian
|
352fb866ef
* is_range_test returns false if "lower" bound is greater than "upper" bound
|
6 роки тому |
florian
|
a34d4e715c
Merged riscv_new branch
|
6 роки тому |
florian
|
a21397e356
+ based on a patch by Laksen, optimize (v>=x) and (v<=y) into (v-x)<(y-x)
|
6 роки тому |
svenbarth
|
32c307e9ce
* fix for Mantis #34021: if one of the two operators is an array constructor try to use an operator overload for that first before converting it to a set
|
7 роки тому |
florian
|
32a58ba7d1
* might_have_sideeffects gets flags: if mhs_exceptions is passed, nodes which might cause an exception are considered as having a side effect
|
7 роки тому |
florian
|
52846df241
* fixed condition in getbestreal
|
7 роки тому |
florian
|
0c6cf12fbf
+ support for the directive $EXCESSPRECISION
|
7 роки тому |
svenbarth
|
fa78bb0e89
* warn if the compiler hides an eventual "+" operator overload if modeswitch ArrayOperators is active
|
7 роки тому |
svenbarth
|
97acf24290
+ add a new modeswitch ArrayOperators which is set by default in Delphi modes that enables the internal array operators (currently only "+")
|
7 роки тому |
svenbarth
|
9b45f58c0b
+ add flags that allow checking for overloads with isbinaryoverloaded() and isunaryoverloaded() without modifying the passed in node or even checking for normally non-overloadable operators
|
7 роки тому |
svenbarth
|
199b5809a3
* optimize "dynarr := dynarr + [elem]" to "Insert(elem, dynarr, High(SizeInt))" and "dynarr := [elem] + dynarr" to "Insert(elem, dynarr, 0)" (we need to do this in the typecheck of taddnode as otherwise the array constructor is already converted)
|
7 роки тому |