2
0
Эх сурвалжийг харах

Blocked revisions 8409,8558-8559,8561,8570,8578,9412,9474,9519,9622,9650,9673,9693,9696,9718-9719,9776,10159,10261,10263,10284,10322,10329 via svnmerge

........
r8409 | jonas | 2007-09-08 20:13:28 +0200 (Sat, 08 Sep 2007) | 13 lines

  * the "external alignment" (i.e., that of their starting addresses) of
    record variables is now independent of their packrecords setting
    (except for packrecords C, which already calculated a reasonable
    alignment). This means that e.g. a packed record consisting of two
    pointers will be aligned at sizeof(pointer) normally. The internal
    alignment of the individual fields of packed records obviously did
    not change, also not if those fields are records themselves.
  * The size of records without any packing atributes is also padded to
    become a multiple of this improved alignment calculation, which
    means that the size of such records may change after this patch.
    Always explicitly specify a packing for records which are used for
    data storage/transmission if you want to have a consistent layout.

........
r8558 | peter | 2007-09-19 00:12:07 +0200 (Wed, 19 Sep 2007) | 10 lines

  * refactor function result handling
  * rename methodpointerinit/done to callinitblock/callcleanupblock
  * moved checks in callnode to separate functions
  * funcretnode is now always a simple node instead of a block of
    statements
  * funcret and methodpointer are generated/optimized only in pass_1 so
    a conversion from calln to loadn is much easier
  * function result assignments are much more often optimized to use the
    assignment destination location instead of using a temp

........
r8559 | peter | 2007-09-19 00:16:28 +0200 (Wed, 19 Sep 2007) | 2 lines

  * fix non-x86 compile after r8558

........
r8561 | jonas | 2007-09-19 11:17:57 +0200 (Wed, 19 Sep 2007) | 6 lines

  + added pm_preprocess support to foreachnode
  * preprocess rather than postprocess the replaceparaloads in ncal
    when inlining, because after r8558 a node is now sometimes replaced
    by a tree which still contains this same node (so postprocess
    causes endless recursion in those cases)

........
r8570 | jonas | 2007-09-20 20:27:59 +0200 (Thu, 20 Sep 2007) | 5 lines

  * fixed toperator5 after r8558. The inlining logic did not take into
    account that an unmodified value parameter's address could also be
    passed as the address of the complex return value (and thus be modified
    indirectly after all)

........
r8578 | peter | 2007-09-20 22:24:30 +0200 (Thu, 20 Sep 2007) | 4 lines

  * nf_is_funcret node flag added
  * remove ti_is_funcret, use new node flag instead
  * check for funcret node in doreplace instead of funcretsym

........
r9412 | jonas | 2007-12-07 18:58:25 +0100 (Fri, 07 Dec 2007) | 6 lines

  + also optimize assignments from calls to by-reference "results":
    o it's a by-reference parameter, but ignore that since it's
      guaranteed to be safe because of the escape analysis
    o it's wrapped in an absolute type conversion -> added
      actualtargetnode method to tnode which diggs through that

........
r9474 | jonas | 2007-12-16 12:46:57 +0100 (Sun, 16 Dec 2007) | 3 lines

  * increased ppu version since the darwin name mangling change
    breaks compatibility with previously compiled units

........
r9519 | peter | 2007-12-23 21:44:02 +0100 (Sun, 23 Dec 2007) | 2 lines

  * use svalue to compare with -1

........
r9622 | jonas | 2008-01-03 23:13:13 +0100 (Thu, 03 Jan 2008) | 2 lines

  - reverted r9519 because it breaks tbs/tb0162 and test/tint644

........
r9650 | peter | 2008-01-06 13:45:26 +0100 (Sun, 06 Jan 2008) | 2 lines

  * fix range check error when compiling with 2.2.x

........
r9673 | jonas | 2008-01-07 22:28:58 +0100 (Mon, 07 Jan 2008) | 4 lines

  * folded a constant addition
  * typecasted a subtraction's result to ptruint to avoid a needless
    64 bit calculation on 32 bit platforms

........
r9693 | jonas | 2008-01-09 19:32:37 +0100 (Wed, 09 Jan 2008) | 3 lines

  * more ptruint type casts to avoid 64 bit comparisons on 32 bit
   platforms

........
r9696 | jonas | 2008-01-09 21:39:59 +0100 (Wed, 09 Jan 2008) | 9 lines

  * Only start recycling oschunks once MaxKeptOSChunks chuncks have
    been allocated. E.g. allocate 100 blocks of 80 bytes and free them
    all, then the same with blocks of 96, 112, 128, 144, 160 and 176
    bytes, after which again 80 bytes -> previously, regardless of
    the value of MaxKeptOSChunks, the empty block for 80 bytes was
    reformatted for those of 96 bytes, then for 112 bytes etc. Now,
    if MaxKeptOSChunks is set to 7, none will ever be reformatted
    because enough chunks will be allocated from the OS.

........
r9718 | jonas | 2008-01-11 23:36:50 +0100 (Fri, 11 Jan 2008) | 3 lines

  * patch from Sergei Gorelkin to return ansi/widestrings by reference
    in an invisible parameter (Delphi compatible, faster/smaller code)

........
r9719 | jonas | 2008-01-11 23:50:07 +0100 (Fri, 11 Jan 2008) | 4 lines

  * increased ppu version number because the ansi/widestring result patch
    makes the generated code ABI-incompatible with code compiled with
    older compilers

........
r9776 | vincents | 2008-01-16 19:57:43 +0100 (Wed, 16 Jan 2008) | 1 line

* fixed comparing ppu time with source time (bug 10443)
........
r10159 | peter | 2008-02-02 18:39:28 +0100 (Sat, 02 Feb 2008) | 4 lines

  * don't optimize funcret with assignment result if the value is also used
    as a parameter and the funcret is also passed as parameter. Because in that
    case both are pointing to the same memory location

........
r10261 | jonas | 2008-02-10 11:09:25 +0100 (Sun, 10 Feb 2008) | 2 lines

  - reverted r9776 (see comments to #10433)

........
r10263 | jonas | 2008-02-10 12:13:33 +0100 (Sun, 10 Feb 2008) | 9 lines

  * perform typechecking of callinit/callcleanup statements immediately when
    they are added (mantis #10807), because
   a) the typecheckpass of the entire blocks has to be postponed until firstpass
      because new statements may still be added in the firstpass (otherwise
      the newly added statements in the firstpass are never typechecked due to
      the blocknode already having a resultdef set)
   b) simplify can be called between the typecheck and firstpass, and it needs
      the typeinfo

........
r10284 | jonas | 2008-02-10 22:49:52 +0100 (Sun, 10 Feb 2008) | 4 lines

  - removed fclex at the end of fpc_exp_real because it makes that routine 10+
    times slower on P4/Athlon XP cpus, and removing it does not cause any test
    suite regressions

........
r10322 | jonas | 2008-02-13 22:07:17 +0100 (Wed, 13 Feb 2008) | 2 lines

  * regenerated with darwin/x86_64 support

........
r10329 | jonas | 2008-02-15 15:47:57 +0100 (Fri, 15 Feb 2008) | 6 lines

  * lineinfo and lnfodwrf depend on inc/exeinfo.pp
  + add fake dependency of lnfodwrf on lineinfo to avoid those two
    units being compiled together, because then inc/exeinfo.pp can
    also be compiled twice at the same time which leads to trouble
    if -ap isn't used

........

git-svn-id: branches/fixes_2_2@10387 -
Jonas Maebe 17 жил өмнө
parent
commit
b57cbb9207

Өөрчлөлтийн мэдээлэл алга байна .