Commit Graph

144 Commits

Author SHA1 Message Date
peter
30be9e8e5d * during translation only process regalloc for the current regtype 2004-10-24 17:04:01 +00:00
mazen
581b52422c - remove $IFDEF DELPHI and related code
- remove $IFDEF FPCPROCVAR and related code
2004-10-15 09:14:16 +00:00
peter
60c73cc0e5 * -Or fixes for open array 2004-10-13 21:12:51 +00:00
peter
b0ebc06ce6 * removed warning about register used only once 2004-10-11 15:47:03 +00:00
peter
eaf46c4fb1 * live_registers must be restored after the spilling store code
is generate to add correct conflicts for extra temporary registers
2004-10-06 20:14:08 +00:00
peter
f5471aef6e * more spilling rewrites 2004-10-05 20:41:01 +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
8fb3536f6e * simple regvar support, not yet finished 2004-09-26 17:45:29 +00:00
peter
65c3ba277c * ungetregister is now only used for cpuregisters, renamed to
ungetcpuregister
  * renamed (get|unget)explicitregister(s) to ..cpuregister
  * removed location-release/reference_release
2004-09-25 14:23:54 +00:00
peter
33a834821f * paraloc branch merged 2004-09-21 17:25:12 +00:00
florian
1eb575fa22 * fixed longbool(<int64>) on sparc 2004-08-24 21:02:32 +00:00
daniel
c4e909e316 * Add check <= 255 when adding to adj_colours 2004-07-09 21:38:30 +00:00
daniel
649bd81edb * Use a normal pascal set in assign_colours, since it only will contain
real registers
2004-07-08 09:57:55 +00:00
daniel
d2a2aeac9f * supregset_reset clears 8kb of memory. However, it is being called in
inner loops, see for example colour_registers. According to profile data
    this causes fillchar to be the most time consuming procedure.
    Some modifications done to make it clear less than 8kb of memory each
    call. Divides time spent in fillchar by two, but it still is the no.1
    procedure.
2004-07-07 17:35:26 +00:00
florian
34d634c64d * fixed arm compilation 2004-06-22 18:24:18 +00:00
florian
8a9758c5e2 * logs truncated 2004-06-20 08:55:28 +00:00
florian
e9bb27df36 * spilling of doubles on sparc fixed 2004-06-20 08:47:33 +00:00
florian
588e2c38bf * dwarf branch merged 2004-06-16 20:07:06 +00:00
peter
5358278ca1 tai_regalloc.allocation changed to ratype to notify rgobj of register size changes 2004-05-22 23:34:27 +00:00
Jonas Maebe
b20d72aa36 * do not remove "allocation,deallocation" pairs, as those are important
for the optimizer
2004-04-26 19:57:50 +00:00
peter
3a5717c1b7 * rewrote add_to_movelist, it now uses a field to store the number
of allocated entries. Also made it using less hardcoded values
2004-03-14 22:50:04 +00:00
peter
56c727153a * check if movelist is valid 2004-03-14 20:06:17 +00:00
peter
ee569d7817 * make extcycle is working again 2004-02-12 15:54:03 +00:00
olle
193e41b455 + check that register allocation is not made at the wrong moment 2004-02-09 20:12:23 +00:00
Jonas Maebe
71202a141d * taicpu.is_same_reg_move() now gets a regtype parameter so it only
removes moves of that particular register type. This is necessary so
    we don't remove the live_start instruction of a register before it
    has been processed
2004-02-08 23:10:21 +00:00
daniel
9868155d53 * Register allocator speed boost 2004-02-08 14:26:28 +00:00
daniel
46d241a666 * Take advantage of our new with statement optimization 2004-02-07 23:28:34 +00:00
daniel
be3eabc26f * Some changes to better accomodate very large movelists
* movelist resizing now exponential (avoids heap fragmentation, saves
      300 kb memory in make cycle)
    * Trgobj.combine hand-optimized (still too slow)
2004-02-06 13:34:46 +00:00
peter
8caaa7740d * more record alignment fixes 2004-01-28 22:16:31 +00:00
florian
8ef2f96215 * made DoSpill* overrideable
+ add_cpu_interferences added
2004-01-26 17:40:11 +00:00
daniel
97e87aaebc * reginfo now also only allocated during register allocation
* third round of gdb cleanups: kick out most of concatstabto
2004-01-26 16:12:27 +00:00
daniel
ecf7accc38 * Keep interference bitmap only allocated during register allocation.
Saves 2 mb of memory.
2004-01-25 23:21:02 +00:00
peter
c34c9af5ce * moved spilling code from taicpu to rg 2004-01-12 16:37:59 +00:00
daniel
61d29c4e4e * Register allocation bug fixed 2004-01-11 13:21:35 +00:00
daniel
cdbb601a4e * Degree=0 problem fixed
* Degree to high problem fixed
2004-01-09 22:02:29 +00:00
peter
1c7e6fc380 * sparc updates
* use registertype in spill_register
2003-12-26 14:02:30 +00:00
peter
0734904796 * only report unreleased imaginary registers 2003-12-22 23:09:34 +00:00
peter
cc8d2226ae * made decrease_degree working, but not really fixed 2003-12-22 22:13:46 +00:00
florian
78aeec22ca * arm compiler compilation fixed 2003-12-18 17:06:21 +00:00
peter
bc4f29e15c * don't insert dealloc before alloc of the same register 2003-12-17 21:59:05 +00:00
daniel
23aa8e1cda * Automatic conversion from integer constants to pointer constants is no
longer done except in Delphi mode
2003-12-16 09:41:44 +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
daniel
e60da116b0 * More microoptimizations 2003-12-15 16:37:47 +00:00
peter
2057dbd01a * fix statedebug compile 2003-12-15 15:58:58 +00:00
daniel
7061f04355 * Register allocator speed optimizations
- Worklist no longer a ringbuffer
    - No find operations are left
    - Simplify now done in constant time
    - unusedregs is now a Tsuperregisterworklist
    - Microoptimizations
2003-12-14 20:24:28 +00:00
peter
bce5a1e252 * rg[tregistertype] added in tcg 2003-12-12 17:16:17 +00:00
peter
1407a03ff1 * remove redundant calls to add_edge_used 2003-12-04 23:27:32 +00:00
peter
825d5b4ed7 * check for add_move_instruction 2003-11-29 17:36:41 +00:00
florian
4584775cbe * changed some types to prevend range check errors 2003-11-24 15:17:37 +00:00
peter
f44380e4a9 * fixed alias/colouring > 255 2003-11-10 19:05:50 +00:00