florian
b20f968454
* simple clean ups after dyn. array conversion
2025-03-21 21:35:39 +01:00
Michaël Van Canneyt
07a2c6b37e
* Replace labeltable with dynamic array
2025-03-20 17:01:31 +01:00
florian
9ec85f940e
* do not remove register deallocations/allocation pairs if the register is written
...
git-svn-id: trunk@49129 -
2021-04-06 19:16:17 +00:00
florian
91a6223281
* (slight modified) patch by J. Gareth Moreton to reduce number of assembler optimizer passes, resolves #37959
...
git-svn-id: trunk@47146 -
2020-10-20 20:03:25 +00:00
florian
c7b19e2fc9
* track used register better: if a deallocation is moved/removed, the used register may not be removed from the current register used register set
...
git-svn-id: trunk@44239 -
2020-02-23 18:24:31 +00:00
florian
872c22842e
* do prefetching correctly
...
* more prefetching inserted
* unnecessary/wrong UpdateUsedRegs removed
git-svn-id: trunk@43878 -
2020-01-06 20:59:24 +00:00
florian
6371d5f26d
+ infrastructure to profile different stages of the compiler
...
git-svn-id: trunk@43869 -
2020-01-06 14:46:32 +00:00
florian
9230ae5aab
o overhaul-base.patch by J. Gareth Moreton, base for further patches
...
+ some inline directives added
+ some functions exported from units
git-svn-id: trunk@42722 -
2019-08-17 16:14:22 +00:00
Jonas Maebe
281b3ad276
* fix case completeness and unreachable code warnings in compiler that would
...
be introduced by the next commit
git-svn-id: trunk@42046 -
2019-05-12 14:29:03 +00:00
florian
94d7a02fae
* modified patch by Gareth Moreton to pool TmpUsedRegs in the assembler optimizers, resolves #34679
...
git-svn-id: trunk@40938 -
2019-01-20 14:16:38 +00:00
florian
b1dff29cbf
* removed unused units
...
git-svn-id: trunk@36165 -
2017-05-09 19:53:14 +00:00
nickysn
7ea0429d40
+ added new compiler debug ifdef DEBUG_INSTRUCTIONREGISTERDEPENDENCIES, which
...
adds instruction register usage info to the assembly output (only register
reads for now, but register writes will also be added later). Useful for
debugging InstructionLoadsFromReg and other similar functions.
git-svn-id: trunk@35967 -
2017-04-27 13:40:58 +00:00
florian
3c2dab9878
* i386 peephole assembler uses largely the common peephole optimizer infrastructure, the resulting code is besides a few improvements the same
...
git-svn-id: trunk@33542 -
2016-04-21 20:14:01 +00:00
florian
4ac3953c34
* use InstructionLoadsFromReg instead of RegInInstruction when moving register deallocations
...
git-svn-id: trunk@33541 -
2016-04-21 19:51:05 +00:00
yury
b26fa07f1a
* Fixed notes "var is assigned but not used".
...
git-svn-id: trunk@31734 -
2015-09-17 13:03:04 +00:00
yury
432248cbf1
* Removed lot of unused vars.
...
git-svn-id: trunk@31732 -
2015-09-17 12:48:58 +00:00
Jonas Maebe
1b43930749
- removed long deprecated/buggy assembler cse optimiser for i386
...
o bumped ppu version because optimiser settings can be embedded in generic
token streams
git-svn-id: trunk@30835 -
2015-05-09 17:25:07 +00:00
florian
2daae5ff03
* moved comment so it is recognized by lazarus as a method description
...
git-svn-id: trunk@30439 -
2015-04-05 19:08:00 +00:00
Jonas Maebe
92fa75838e
* honour -Oonopeephole
...
git-svn-id: trunk@27106 -
2014-03-11 23:18:58 +00:00
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