nickysn
|
efc5e339d0
* use an enum instead of integer constants to represent inline numbers
|
8 years ago |
florian
|
b1dff29cbf
* removed unused units
|
8 years ago |
svenbarth
|
8f4ef91efb
* tarrayconstructornode: force conversion to set if there's a range node in the tree
|
8 years ago |
svenbarth
|
82b2d22ed6
* keep track of allow_array_constructor as part of the array constructor node
|
8 years ago |
svenbarth
|
dfc23da06c
* tassignmentnode.pass_typecheck: also allow "dynarray := []" in addition to "dynarray := nil"
|
8 years ago |
svenbarth
|
b1c66dee9b
+ tarrayconstructornode: add utility method has_range_node to check whether the array constructor node tree contains any range node
|
8 years ago |
svenbarth
|
4a2266ac44
* tarrayconstructornode.pass_typecheck: set elementdef of the arraydef only after the arrayoptions are changed
|
8 years ago |
nickysn
|
012153201a
* moved the conversion of "x:=x op k" to inline nodes to a separate optimization
|
8 years ago |
nickysn
|
5bb77905cd
* fixed the missing warnings for unused variables at -O3, when one of the new
|
8 years ago |
nickysn
|
4697a653a4
+ perform the "i:=i +/-/and/or/xor k" optimization when there are two typecasts
|
8 years ago |
nickysn
|
d8406c4227
+ perform the "i:=-i" / "i:=not i" optimization even when there are typecasts
|
8 years ago |
nickysn
|
98be270adb
* fixed a memory leak in the "i:=-i" / "i:=not i" optimization
|
8 years ago |
nickysn
|
e78f0aafcd
- remove whitespace, was inserted by accident
|
8 years ago |
nickysn
|
3616627d0b
* at -O3 optimization level, convert "i:=not i" and "i:=-i" to the new
|
8 years ago |
nickysn
|
f29492bdea
* at -O3 level, convert i:=i and/or/xor k to the new in_[and/or/xor]_assign_x_y
|
8 years ago |
florian
|
b55cb246da
* do +/-/pred/succ to inc/dec optimizations only at an appropriate optimziation level
|
8 years ago |
pierre
|
a7c7319352
Avoid use of getcopy method for i:=i+/i k optimization
|
8 years ago |
florian
|
a679cd4e37
* copy loadnodeflags in tloadnode.dogetcopy as well
|
8 years ago |
nickysn
|
bd48a71a98
* replace i:=i+k/i:=k+i/i:=i-k (integer only, for now; later we can also do this for pointers too) by inc/dec(i,k)
|
8 years ago |
florian
|
a27b07b342
+ more restrictions on pred/succ to dec/inc optimization
|
8 years ago |
florian
|
000cffa8e3
* make more use of nf_internal to avoid range check errors
|
8 years ago |
florian
|
509f6839fe
+ replace i:=succ/pred(i) by inc/dec(i)
|
8 years ago |
Jonas Maebe
|
233622157c
* don't attempt to load the VMT of a niln when taking the address of a
|
8 years ago |
Jonas Maebe
|
2d051f89f7
* don't increase refcounts for variants assigned to (ti_)const nodes, fixes
|
9 years ago |
Jonas Maebe
|
f64556c125
* when taking the address of a class method via an instance, create a procvar
|
9 years ago |
Jonas Maebe
|
18580d3069
* when assigning a value to a temp marked as ti_const, do not immediately
|
9 years ago |
Jonas Maebe
|
9914f02faa
* always set the resultdef for variant array constructors correctly, so we
|
9 years ago |
Jonas Maebe
|
95927665ce
- removed variable notification support, it's not used and superceded by
|
9 years ago |
florian
|
63f828d54e
* take care of nf_internal when doing range checking and inserting type conversions in tassignmentnode.pass_typecheck
|
10 years ago |
Jonas Maebe
|
f402b0d7df
* changed getpointerdef() into a tpointerdef.getreusable() class method
|
10 years ago |