mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-22 15:09:28 +02:00
The sources of the Free Pascal compiler, RTL, packages and utilities.
See https://www.freepascal.org/ for more info.
![]() * This patch makes some minor improvements to the cross-platform code that deals with jump optimisations. More specifically, it attempts to do more in a single pass which has the nice side-effect of fixing a couple of minor mistakes (in some situations, it would erroneously remove an alignment entry). - Most improvements are with dealing with Jcc/JMP pairs and their equivalents on other platforms, by collapsing label clusters and stripping dead code as soon as it has enough information to do so, and being more intelligent before calling Continue to see if another optimisation can be performed in the same sitting. - RemoveDeadCodeAfterJump is now a function that returns True if a jump was found among the dead code, thus allowing the ability to flag the peephole optimizer for another iteration of Pass 1 - the destination label may have appeared earlier in the code and become dead as a result of the removal of the jump, thus opening up new optimisations with instructions that sat either side of the label. - Preliminary tests show that it does sometimes reduce the number of passes required to optimise a subroutine under -O3. git-svn-id: trunk@43668 - |
||
---|---|---|
compiler | ||
installer | ||
packages | ||
rtl | ||
tests | ||
utils | ||
.gitattributes | ||
.gitignore | ||
fpmake_add1.inc | ||
fpmake_proc1.inc | ||
fpmake.pp | ||
Makefile | ||
Makefile.fpc |