Commit History

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