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
e4451558c4
* optimized register allocation for tempnodes
...
git-svn-id: trunk@2221 -
2006-01-08 12:53:43 +00:00
Jonas Maebe
255855b5d9
* more informative printnode* output for temp-related nodes
...
git-svn-id: trunk@702 -
2005-07-19 14:59:04 +00:00
florian
7cd67ea3f0
* node optimizer branch merged
...
* gotonode and gotolabel refactored
* -Nu added to enable for loop unrolling
git-svn-id: trunk@446 -
2005-06-19 17:42:10 +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
florian
252fa84c62
+ compiler support for reading/writing of vararrays
2005-03-27 20:19:21 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
peter
be1808953c
* fix laststatement()
2005-01-31 16:15:17 +00:00
peter
5ee4b9ad24
* use tlocation for tempnodes
2004-12-03 16:04:47 +00:00
Jonas Maebe
21c7a9db2f
* fixed check for regvar-ability of tempnodes
2004-11-28 19:16:53 +00:00
peter
89b1b583c9
* ttempcreatenode.create_reg merged into .create with parameter
...
whether a register is allowed
* funcret_paraloc renamed to funcretloc
2004-11-21 17:54:59 +00:00
peter
c95a859f0a
* generic tlocation
...
* move tlocation to cgutils
2004-10-31 21:45:02 +00:00
peter
560a790a57
* gen high tree makes copy in temp when there is a calln
2004-10-12 14:36:38 +00:00
peter
8fb3536f6e
* simple regvar support, not yet finished
2004-09-26 17:45:29 +00:00
Jonas Maebe
ddf175f171
+ temps can now also hold fpu values in registers (take care with use,
...
bacause of the x86 fpu stack)
* fpu parameters to node-inlined procedures can now also be put in
a register
2004-07-16 19:45:15 +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
peter
b86f2c6a25
* methodpointer is loaded into a temp when it was a calln
2004-05-23 18:28:40 +00:00
peter
72365ec95b
* implicit_finally flag must be set in pass1
...
* add check whether the implicit frame is generated when expected
2004-05-23 15:06:20 +00:00
peter
8756d4f862
* maybe_in_reg moved to tempinfo
...
* fixed expectloc for maybe_in_reg
2004-03-10 20:41:17 +00:00
Jonas Maebe
5290787578
* don't put types that need init/fini in register temps
2004-02-06 20:22:58 +00:00
peter
ecfbbeffc3
* renamed xNNbittype to xNNinttype
...
* renamed registers32 to registersint
* replace some s32bit,u32bit with torddef([su]inttype).def.typ
2004-02-03 22:32:53 +00:00
Jonas Maebe
0d004c1e35
* fixed and re-enabled temps in registers
2004-02-03 19:48:06 +00:00
Jonas Maebe
edb91b0d18
* disabled temps in registers for now, because the register allocator
...
can't handle it yet in some cases
2004-02-03 17:56:14 +00:00
Jonas Maebe
694eee6cae
+ support to store ttempcreate/ref/deletenodes in registers
...
* put temps for withnodes and some newnodes in registers
Note: this currently only works because calling ungetregister()
multiple times for the same register doesn't matter. We need again
a way to specify that a register is currently a regvar and as such
should not be freed when you call ungetregister() on it.
2004-02-03 16:46:51 +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
Jonas Maebe
8da316cf21
* override tblocknode.destroy so all statements are freed sequentially
...
instead of recusively.
2003-12-10 20:31:40 +00:00
peter
f663d2488f
* cross unit inlining fixed
2003-11-10 22:02:52 +00:00
peter
30f1eb4705
* fix for referencecounted temps
2003-11-04 15:35:13 +00:00
peter
f2264589fc
* fix crashes in asmnode.deref when p_asm=nil
2003-10-31 15:51:47 +00:00
peter
fae3eaf83d
* move check for unused object constructor result to blocknode
2003-10-29 20:34:20 +00:00
peter
4a1ecb07d1
* splitted buildderef and buildderefimpl to fix interface crc
...
calculation
2003-10-23 14:44:07 +00:00
peter
6878c55c80
* write derefdata in a separate ppu entry
2003-10-22 20:39:59 +00:00
peter
925046ad5f
* fixed check for $X- result usage
2003-10-21 18:15:16 +00:00
florian
05fcae577a
* some ppc stuff fixed
...
* memory leak fixed
2003-10-19 01:34:30 +00:00
peter
d0de3b3ea8
* 64k registers supported
...
* fixed some memory leaks
2003-10-17 14:38:32 +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
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
8af51ea6d3
* locals and paras are allocated in the code generation
...
* tvarsym.localloc contains the location of para/local when
generating code for the current procedure
2003-09-23 17:56:05 +00:00
peter
b9d09a4e5c
* preparations for different default calling conventions
...
* various RA fixes
2003-09-07 22:09:34 +00:00
peter
6a8d5eb25d
* NEWRA branch merged
2003-09-03 15:55:00 +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
peter
0dceec9a64
* current_procdef removed, use current_procinfo.procdef instead
2003-06-13 21:19:30 +00:00
Jonas Maebe
1929498b42
* patch from Peter to fix tempinfo copying
2003-06-10 09:10:47 +00:00
peter
ab1f33f68b
* remove temptype, use tempinfo.temptype instead
2003-06-09 18:26:46 +00:00
peter
47b691057b
* getposition added to retrieve the the current tai item
2003-06-09 12:20:47 +00:00
Jonas Maebe
8e09d78f79
+ ability to change the location of a ttempref node with changelocation()
...
method. Useful to use instead of copying the contents from one temp to
another
+ some shortstring optimizations in tassignmentnode that avoid some
copying (required some shortstring optimizations to be moved from
resulttype to firstpass, because they work on callnodes and string
addnodes are only changed to callnodes in the firstpass)
* allow setting/changing the funcretnode of callnodes after the
resulttypepass has been done, funcretnode is now a property
(all of the above should have a quite big effect on callparatemp)
2003-06-08 18:27:15 +00:00
Jonas Maebe
820302b098
- disabled "result := value; exit;" -> exit(value) optimization because
...
a) it was wrong
b) exit(value) works now exactly the same as that
(it was only activated with -Or)
2003-05-30 21:01:44 +00:00