Commit Graph

36 Commits

Author SHA1 Message Date
florian
6e62fbc3d2 * more consistent updates of used registers
+ FindRegDeAlloc searching for a register deallocation
* FindRegAlloc now returns the allocation object which was found

git-svn-id: trunk@22191 -
2012-08-22 19:52:15 +00:00
florian
e1a2b1859a * comments and explanations on tai_regalloc.keep field
* write/read tai_regalloc. field to/from ppu

git-svn-id: trunk@22190 -
2012-08-22 19:52:08 +00:00
florian
b6608e716b + tai_regalloc.keep to force register deallocations to be keep
git-svn-id: trunk@22187 -
2012-08-22 19:51:47 +00:00
florian
2a14394cf5 * cleaned up scheduler code, created own scheduler class to avoid unneeded passes through the assembler
git-svn-id: trunk@22133 -
2012-08-19 19:15:34 +00:00
florian
117c083003 * call inherited Destroy in TAsmOptimizer to avoid memory leak
git-svn-id: trunk@21706 -
2012-06-25 20:19:19 +00:00
florian
8832a34b67 * fix reg. allocs even for procedures without labels
git-svn-id: trunk@21309 -
2012-05-15 18:09:12 +00:00
florian
75e62e42e4 * add debug statements
* avoid possible problems with unknown ra_ types

git-svn-id: trunk@21304 -
2012-05-15 18:07:08 +00:00
florian
748694a325 * fixes some issues with reg. allocation information
git-svn-id: trunk@21303 -
2012-05-15 18:06:41 +00:00
florian
0fe22a358b + first version of ldr instruction scheduler on arm
git-svn-id: trunk@20512 -
2012-03-11 19:10:58 +00:00
Jonas Maebe
666b4e2469 * fixed range errors in label bookkeeping that caused too much memory to be
allocated for optimising jumps

git-svn-id: trunk@14470 -
2009-12-23 21:08:05 +00:00
Jonas Maebe
090f2a6108 * defined "class of TAsmOptimizer" as separate type to avoid tripping
Lazarus'  code navigation

git-svn-id: trunk@14411 -
2009-12-11 21:48:58 +00:00
Jonas Maebe
c1c1b2deac * more aint() type casts replaced by int64() type casts
git-svn-id: trunk@12073 -
2008-11-13 19:44:30 +00:00
yury
a039dd6942 * Fixed warnings about hiding inherited method.
git-svn-id: trunk@11449 -
2008-07-23 11:51:19 +00:00
yury
451a290caf * Fixed 'mixed signed/unsigned' and pointer conversion warnings.
git-svn-id: trunk@11444 -
2008-07-23 11:17:27 +00:00
yury
fd0ed50331 * Removed/commented more unused variables.
* Fixed some uninitialized variable warnings.

git-svn-id: trunk@11442 -
2008-07-23 10:48:53 +00:00
yury
fcceb9cfa1 * Removed/ifdefed/commented unused local variables.
git-svn-id: trunk@11430 -
2008-07-20 23:00:31 +00:00
florian
4010d66c2c * arm cond. instruction support
git-svn-id: trunk@5387 -
2006-11-14 22:37:22 +00:00
florian
85d63d9fa9 * settings refactored
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
peter
89f5d65784 * fix findlohilabel
git-svn-id: trunk@3299 -
2006-04-20 13:59:14 +00:00
peter
b7fe6797bf Merged revisions 2921-2922,2925 via svnmerge from
http://svn.freepascal.org/svn/fpc/branches/linker/compiler

........
r2921 | peter | 2006-03-15 08:35:00 +0100 (Wed, 15 Mar 2006) | 2 lines

  * pass ObjectWriter to ObjectOuput

........
r2922 | peter | 2006-03-15 12:40:30 +0100 (Wed, 15 Mar 2006) | 2 lines

  * refactor asmdata

........
r2925 | peter | 2006-03-15 16:09:39 +0100 (Wed, 15 Mar 2006) | 3 lines

  * add cfi to asmdata
  * move asmlist, asmcfi, asmdata to own unit

........

git-svn-id: trunk@2932 -
2006-03-16 08:52:22 +00:00
peter
b6e35a200e * rewrite of optimizer options
git-svn-id: trunk@2901 -
2006-03-13 09:05:50 +00:00
Jonas Maebe
ab5f5ca15e * fixed ppc compilation
git-svn-id: trunk@2778 -
2006-03-05 22:06:44 +00:00
Jonas Maebe
cd3f064a33 + enabled postpeepholeopts phase
+ optimize "integer op" followed by comparison of target register with zero
    to a variant of that integer op which sets the flags (ppc)
  + change rlwinm. instructions which do nothing but an "and" operation into
    andi./andis., since the rlwinm. is cracked on the G5 while andi./andis.
    isn't

git-svn-id: trunk@1361 -
2005-10-12 19:47:21 +00:00
Jonas Maebe
ab3bc45fa4 * cpu-specific overrides of optimizer methods now get called
+ first simple rlwinm optimization for ppc

git-svn-id: trunk@1320 -
2005-10-07 21:44:00 +00:00
fpc
790a4fe2d3 * log and id tags removed
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
fpc
50778076c3 initial import
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
Jonas Maebe
ec959955bd * fixed generic jumps optimizer and enabled it for ppc (the label table
was not being initialised -> getfinaldestination always failed, which
    caused wrong optimizations in some cases)
  * changed the inverse_cond into a function, because tasmcond is a record
    on ppc
  + added a compare_conditions() function for the same reason
2005-02-26 01:26:59 +00:00
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
peter
c95a859f0a * generic tlocation
* move tlocation to cgutils
2004-10-31 21:45:02 +00:00
florian
e04b172854 * fixed generic optimizer
* enabled generic optimizer for sparc
2004-10-30 15:21:37 +00:00
florian
8a9758c5e2 * logs truncated 2004-06-20 08:55:28 +00:00
peter
4285e99853 * internal linker
* reorganized aasm layer
2002-07-01 18:46:20 +00:00
peter
06ebac4e27 * readded missing revisions 2002-05-18 13:34:04 +00:00
carl
21b3a10f02 + defines.inc -> fpcdefs.inc to avoid conflicts if compiling by hand
+ try to fix temp allocation (still in ifdef)
+ generic constructor calls
+ start of tassembler / tmodulebase class cleanup
2002-05-16 19:46:34 +00:00
peter
2992e1819c * removed old logs and updated copyright year 2002-05-14 19:34:38 +00:00
florian
9746f4c2d6 * some cg reorganisation
* some PPC updates
2001-08-26 13:35:06 +00:00