nickysn
|
5bb77905cd
* fixed the missing warnings for unused variables at -O3, when one of the new
|
hace 8 años |
nickysn
|
4697a653a4
+ perform the "i:=i +/-/and/or/xor k" optimization when there are two typecasts
|
hace 8 años |
nickysn
|
d8406c4227
+ perform the "i:=-i" / "i:=not i" optimization even when there are typecasts
|
hace 8 años |
nickysn
|
98be270adb
* fixed a memory leak in the "i:=-i" / "i:=not i" optimization
|
hace 8 años |
nickysn
|
e78f0aafcd
- remove whitespace, was inserted by accident
|
hace 8 años |
nickysn
|
3616627d0b
* at -O3 optimization level, convert "i:=not i" and "i:=-i" to the new
|
hace 8 años |
nickysn
|
f29492bdea
* at -O3 level, convert i:=i and/or/xor k to the new in_[and/or/xor]_assign_x_y
|
hace 8 años |
florian
|
b55cb246da
* do +/-/pred/succ to inc/dec optimizations only at an appropriate optimziation level
|
hace 8 años |
pierre
|
a7c7319352
Avoid use of getcopy method for i:=i+/i k optimization
|
hace 8 años |
florian
|
a679cd4e37
* copy loadnodeflags in tloadnode.dogetcopy as well
|
hace 8 años |
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)
|
hace 8 años |
florian
|
a27b07b342
+ more restrictions on pred/succ to dec/inc optimization
|
hace 8 años |
florian
|
000cffa8e3
* make more use of nf_internal to avoid range check errors
|
hace 8 años |
florian
|
509f6839fe
+ replace i:=succ/pred(i) by inc/dec(i)
|
hace 8 años |
Jonas Maebe
|
233622157c
* don't attempt to load the VMT of a niln when taking the address of a
|
hace 8 años |
Jonas Maebe
|
2d051f89f7
* don't increase refcounts for variants assigned to (ti_)const nodes, fixes
|
hace 9 años |
Jonas Maebe
|
f64556c125
* when taking the address of a class method via an instance, create a procvar
|
hace 9 años |
Jonas Maebe
|
18580d3069
* when assigning a value to a temp marked as ti_const, do not immediately
|
hace 9 años |
Jonas Maebe
|
9914f02faa
* always set the resultdef for variant array constructors correctly, so we
|
hace 9 años |
Jonas Maebe
|
95927665ce
- removed variable notification support, it's not used and superceded by
|
hace 10 años |
florian
|
63f828d54e
* take care of nf_internal when doing range checking and inserting type conversions in tassignmentnode.pass_typecheck
|
hace 10 años |
Jonas Maebe
|
f402b0d7df
* changed getpointerdef() into a tpointerdef.getreusable() class method
|
hace 10 años |
Jonas Maebe
|
dd3d0ae5bc
* set the type of the hidden $vmt parameter to the correct classrefdef and
|
hace 10 años |
Jonas Maebe
|
822b943d08
- removed most special handling of self (the self parameter has had the
|
hace 10 años |
Jonas Maebe
|
5bb89cc2f0
* keep track of the reason why a loadparentfpnode has been created: to
|
hace 10 años |
Jonas Maebe
|
b57c95043f
+ support overriding tdef/tsym methods with target-specific functionality:
|
hace 11 años |
svenbarth
|
798bb91e90
Extract tdef.is_related plus its overrides in tobjectdef, trecorddef and tstringdef into a new function def_is_related in unit defcmp.
|
hace 11 años |
florian
|
541d67771b
* keep managed types in registers if possible. Under certain circumstances (if they don't require init/final code,
|
hace 12 años |
sergei
|
4e873d0561
+ Determine early (before pass 2) whether managed parameters/locals/temps will cause the procedure to reference RTTI labels and, therefore, need GOT.
|
hace 12 años |
Jonas Maebe
|
5ea03973d3
* reject assignments to vecn[rangen] (mantis #22941)
|
hace 13 años |