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
florian
bbf7300a0c
* Florian's culmutative nr. 1; contains:
...
- invalid calling conventions for a certain cpu are rejected
- arm softfloat calling conventions
- -Sp for cpu dependend code generation
- several arm fixes
- remaining code for value open array paras on heap
2003-11-07 15:58:32 +00:00
peter
9e66b09843
* call firstpass before allocation and codegeneration is started
...
* move leftover code from pass_2.generatecode() to psub
2003-10-30 16:22:40 +00:00
Jonas Maebe
cf8b181ff2
* some ALLOWDUPREG improvements
2003-10-29 21:29:14 +00:00
peter
96f9973b46
* taicpu_abstract.oper[] changed to pointers
2003-10-21 15:15:35 +00:00
florian
13a4e41b0c
* improved speed; reduced memory usage of the interference bitmap
2003-10-19 12:36:36 +00:00
florian
05fcae577a
* some ppc stuff fixed
...
* memory leak fixed
2003-10-19 01:34:30 +00:00
peter
9f54e1b7c5
* made worklists dynamic in size
2003-10-18 15:41:26 +00:00
peter
ec7fb064d0
* fixed last commit
2003-10-17 16:16:08 +00:00
florian
5b33ab3643
* fixed more ppc stuff
2003-10-17 15:25:18 +00:00
peter
d0de3b3ea8
* 64k registers supported
...
* fixed some memory leaks
2003-10-17 14:38:32 +00:00
florian
1df13c788c
* fixed some MMX<->SSE
...
* started to fix ppc, needs an overhaul
+ stabs info improve for spilling, not sure if it works correctly/completly
- MMX_SUPPORT removed from Makefile.fpc
2003-10-11 16:06:42 +00:00
peter
fb81b7ebbb
* old trgobj moved to x86/rgcpu and renamed to trgx86fpu
...
* tregisteralloctor renamed to trgobj
* removed rgobj from a lot of units
* moved location_* and reference_* to cgobj
* first things for mmx register allocation
2003-10-10 17:48:13 +00:00
daniel
b2343f4b16
* Register allocator splitted, ans abstract now
2003-10-09 21:31:37 +00:00
peter
70fe77ca7c
* procinfo unit contains tprocinfo
...
* cginfo renamed to cgbase
* moved cgmessage to verbose
* fixed ppc and sparc compiles
2003-10-01 20:34:48 +00:00
peter
2771f49e22
* reuse registers with the least conflicts
2003-09-30 19:54:42 +00:00
peter
540691bf02
* optimized releasing of registers
2003-09-29 20:58:55 +00:00
peter
dea558b5c7
* return reg 255 when allowdupreg is defined
2003-09-28 13:41:12 +00:00
peter
bf66a6e4ab
* fix filepositions
...
* insert spill temp allocations at the start of the proc
2003-09-25 16:19:32 +00:00
peter
76a53a375d
* varspez in calls to push_addr_param
2003-09-16 16:17:01 +00:00
daniel
90e1ca64f3
* Fixed fast spilling functionality by re-adding the code that initializes
...
precoloured nodes to degree 255. I would like to play hangman on the one
who removed that code.
2003-09-12 19:07:42 +00:00
florian
8f66389b46
* improved arm code generation
...
* move some protected and private field around
* the temp. register for register parameters/arguments are now released
before the move to the parameter register is done. This improves
the code in a lot of cases.
2003-09-11 11:54:59 +00:00
daniel
49e539ac8d
* Adding register allocation order
2003-09-09 20:59:27 +00:00
peter
05a15df3c2
* use register with least interferences in spillregister
2003-09-09 15:55:44 +00:00
peter
b9d09a4e5c
* preparations for different default calling conventions
...
* various RA fixes
2003-09-07 22:09:34 +00:00
peter
610cbec252
* fixes for FPU register allocation
2003-09-03 21:06:45 +00:00
peter
6a8d5eb25d
* NEWRA branch merged
2003-09-03 15:55:00 +00:00
florian
220e05dd5e
* fixed arm concatcopy
...
+ arm support in the common compiler sources added
* moved some generic cg code around
+ tfputype added
* ...
2003-09-03 11:18:36 +00:00
daniel
889bd81bdb
* Register allocator bugfix for h2pas
2003-08-23 10:46:21 +00:00
Jonas Maebe
4f8c390198
* fixed regvars so they work with newra (at least for ppc)
...
* fixed some volatile register bugs
+ -dnotranslation option for -dnewra, which causes the registers not to
be translated from virtual to normal registers. Requires support in
the assembler writer as well, which is only implemented in aggas/
agppcgas currently
2003-08-17 16:59:20 +00:00
daniel
7d3bfaaed4
* Precoloured nodes now have an infinite degree approached with 255,
...
like they should.
2003-08-17 14:32:48 +00:00
daniel
45f9851e87
* Another register allocator bug fixed.
...
* cpu_registers set to 6 for i386
2003-08-17 08:48:02 +00:00
daniel
42c320cb29
* cs_regalloc renamed to cs_regvars to avoid confusion with register
...
allocator
* Some preventive changes to i386 spillinh code
2003-08-09 18:56:54 +00:00