Jonas Maebe
058e3762aa
* added missing begin/end
...
git-svn-id: trunk@10260 -
2008-02-10 10:07:55 +00:00
peter
e1132f8fe1
* check register type to not mixup sse registers
...
git-svn-id: trunk@7505 -
2007-05-28 19:12:12 +00:00
florian
a3d906f1ca
- removed several ;;
...
git-svn-id: trunk@7498 -
2007-05-28 15:59:17 +00:00
florian
85d63d9fa9
* settings refactored
...
git-svn-id: trunk@5094 -
2006-10-30 18:02:58 +00:00
peter
d07f470b71
* remove ifdef fpc
...
git-svn-id: trunk@4819 -
2006-10-07 13:43:34 +00:00
Jonas Maebe
fc3fb54f7c
* turning on peephole optimizations no longer turns on cse as well
...
* -O3 again performs multiple cse passes
git-svn-id: trunk@3915 -
2006-06-21 18:55:48 +00:00
Jonas Maebe
58703324a9
* fixed issue #6913 (old bug id: #5086 )
...
git-svn-id: trunk@3912 -
2006-06-21 17:11:52 +00:00
Jonas Maebe
9e57973566
- reverted previous fix, is wrong
...
git-svn-id: trunk@3819 -
2006-06-07 20:52:45 +00:00
Jonas Maebe
d9c1078793
* fixed mantis bug #6913
...
git-svn-id: trunk@3818 -
2006-06-07 19:37:47 +00:00
Jonas Maebe
a854918f9a
* the length of a sequence loading a constant in a register is properly set
...
* register contents are fully cleared in clearregcontentsfrom()
git-svn-id: trunk@3654 -
2006-05-24 14:38:35 +00:00
Jonas Maebe
00f401693c
* fixed web bug #5094 . Renaming registers is now done sequentially instead
...
of all at the same time, because otherwise circular renamings could
cause errors
git-svn-id: trunk@3644 -
2006-05-23 17:17:23 +00:00
Jonas Maebe
a1b2701e5f
* if while we are restoring the contents of a register, we encounter an
...
operation which changes a register, clear the contents of all registers
which depend on this register
git-svn-id: trunk@3480 -
2006-05-11 16:46:58 +00:00
Jonas Maebe
4b887ef604
* when restoring a register's previous contents after it's been replaced
...
completely, there were some missing checks to make certain these
previous contents didn't conflict with memory operations in the new
sequence
git-svn-id: trunk@3329 -
2006-04-24 11:12:17 +00:00
Jonas Maebe
af36d177d9
* if we find a constant already loaded in a register and we use that
...
register, mark the register as read by the current instruction
(fixes compilation of tcalfun8 with optimizations)
git-svn-id: trunk@3003 -
2006-03-21 15:44:55 +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
a885e9da0e
* fixed replaceregdebug code
...
git-svn-id: trunk@2196 -
2006-01-06 14:55:42 +00:00
Jonas Maebe
b507ddae51
* fixed crash when an optimized sequence extends till the start of an
...
assembler block
git-svn-id: trunk@1869 -
2005-12-02 11:09:13 +00:00
Jonas Maebe
867aaef744
* fixed restoring of register contents one instruction too far when removing
...
a previous unused load
git-svn-id: trunk@1465 -
2005-10-18 09:31:54 +00:00
Jonas Maebe
8b82f90b27
* fixed overflows in counters used for operands in case opcode without
...
operands
git-svn-id: trunk@1323 -
2005-10-08 12:02:39 +00:00
Jonas Maebe
8471e10137
* fixed tw4266
...
git-svn-id: trunk@1317 -
2005-10-07 16:48:51 +00:00
Jonas Maebe
c3a5f88a7b
* fixed webtbs/tw4388: properly process regalloc info coming right after
...
a tai_marker of type asmblockend, and fixed removal of too many
tai_regallocs in some cases (daopt386.pas)
* some preventive fixes to make sure the optimizer doesn't start optimizing
inside inline assembler blocks (csopt386.pas)
git-svn-id: trunk@1284 -
2005-10-04 13:30:13 +00:00
peter
89297d2c39
* move all stabs ($ifdef gdb) code to dbgstabs
...
git-svn-id: trunk@1255 -
2005-10-02 11:17:05 +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
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
Jonas Maebe
d898b8dfb7
* no more moving the loading of regvars past conditional jumps
2004-12-30 14:51:22 +00:00
Jonas Maebe
53c04512cc
* fixed several regvar related bugs, cycle with -OZp3r doesn't work
...
yet though
2004-12-28 18:01:40 +00:00
Jonas Maebe
b2869b3c75
* fixed internalerror when cycling with -O3p3u
2004-12-27 15:20:03 +00:00
Jonas Maebe
84aa52942f
* fixed tracking of usage of flags register
...
* fixed destroying of "memwrite"'s
* fixed checking of entire sequences in all cases (previously this was
only guaranteed if the new sequence was longer than the old one, and
not if vice versa)
* fixed wrong removal of sequences if a register load was already
completely removed in the previous sequence (because in that case,
that register has to be removed and renamed in the new sequence as
well before removing the new sequence)
2004-12-18 15:16:10 +00:00
peter
c95a859f0a
* generic tlocation
...
* move tlocation to cgutils
2004-10-31 21:45:02 +00:00
Jonas Maebe
cf085fb9d0
* several fixes to allocregbetween()
2004-10-10 15:01:19 +00:00
Jonas Maebe
0cf348b3df
* take into account the size of a write to determine whether a write to
...
one reference influences the contents of another reference
2004-10-06 19:24:38 +00:00
peter
ee3585f56f
* spilling code rewritten for x86. It now used the generic
...
spilling routines. Special x86 optimization still needs
to be added.
* Spilling fixed when both operands needed to be spilled
* Cleanup of spilling routine, do_spill_readwritten removed
2004-10-04 20:46:22 +00:00
peter
33a834821f
* paraloc branch merged
2004-09-21 17:25:12 +00:00
Jonas Maebe
d1b9c24cb1
* fixed some more potential regvar bugs
2004-07-23 13:30:19 +00:00
florian
8a9758c5e2
* logs truncated
2004-06-20 08:55:28 +00:00
florian
588e2c38bf
* dwarf branch merged
2004-06-16 20:07:06 +00:00
florian
fabb9c33ac
* top_symbol killed
...
+ refaddr to treference added
+ refsymbol to treference added
* top_local stuff moved to an extra record to save memory
+ aint introduced
* tppufile.get/putint64/aint implemented
2004-02-27 10:21:04 +00:00
Jonas Maebe
5332b623ad
* fixed bugs that caused pasjpeg crashes
2004-02-25 20:39:58 +00:00
Jonas Maebe
bade472032
* fixed some more optimizer bugs, make cycle now works with -O2p3,
...
-O2p3u, -O3p3 and -O3p3u
2003-12-20 22:53:33 +00:00
peter
1367e342db
* reg allocations for imaginary register are now inserted just
...
before reg allocation
* tregister changed to enum to allow compile time check
* fixed several tregister-tsuperregister errors
2003-12-15 21:25:48 +00:00
Jonas Maebe
6abc491796
- disable removal of dead loads before a call, because register
...
parameters are released before a call
* fix storeback of registers in case of different sizes (e.g., first
a "movl %eax,%edx" and later a "movb %dl,%al")
2003-12-15 16:08:15 +00:00
peter
39b4e0398a
* fixed csdebug
2003-12-14 22:42:14 +00:00
peter
19b2170ee4
* optimizer works again with 1.0.x
...
* fixed wrong loop in FindRegWithConst
2003-12-14 14:18:59 +00:00
Jonas Maebe
942cfc9aac
* isgp32reg was being called with both tsuperregister and tregister
...
parameters, so changed type to tsuperregister (fixes bug reported by
Bas Steendijk)
* improved regsizesok() checking so it gives no false positives anymore
2003-12-13 15:48:47 +00:00
Jonas Maebe
f3d82160b1
* fixed some more bugs which only showed up in a ppc cross compiler
2003-12-07 19:19:56 +00:00
Jonas Maebe
7f4a3bf1a9
* fixed bug which only showed up in the ppc crosscompiler :)
2003-11-28 18:49:05 +00:00
Jonas Maebe
7128b3fdd2
* fixed double unit usage
2003-11-22 13:10:32 +00:00
Jonas Maebe
aad37ce53c
* fixed optimiser so it compiles again
...
* fixed several bugs which were in there already for a long time, but
which only popped up now :) -O2/-O3 will now optimise less than in
the past (and correctly so), but -O2u/-O3u will optimise a bit more
* some more small improvements for -O3 are still possible
2003-11-22 00:40:19 +00:00