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 -