Commit Graph

290 Commits

Author SHA1 Message Date
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
peter
34ed3ae7a5 * don't use normal assingments for inlining of formal consts
git-svn-id: trunk@393 -
2005-06-13 06:57:54 +00:00
Jonas Maebe
893f45c9e2 * fixed web bug #4039 (include methodpointer init/fini for inlined methods)
git-svn-id: trunk@390 -
2005-06-12 16:40:10 +00:00
florian
21038de78d + started with refactoring det_resulttype
+ dosimplify
* inlinenig makes use of dosimplify

git-svn-id: trunk@140 -
2005-05-29 15:15:38 +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
michael
55e76063df * Fix methodpointer copy from callnode to loadnode 2005-04-06 11:49:37 +00:00
peter
521b7cfa3b * load all complex loads of parameters that are needed multiple times
to a temp to prevent calling functions twice
2005-04-05 21:07:43 +00:00
peter
e71066495c fix type of temps generated for parameters during inlining 2005-03-28 15:05:17 +00:00
peter
3f9d6ab32f * add hint when passing an uninitialized variable to a var parameter 2005-03-25 22:20:18 +00:00
peter
20ad7813c2 * fix empty varargs codegeneration for x86_64 2005-03-14 20:18:46 +00:00
peter
047c28d993 * member call to constructor returns void to prevent
generating unexpected code. Otherwise the return value is always
    equal to self, which can also be directly accessed
2005-02-17 17:50:26 +00:00
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
florian
5007b3e395 * inherited; works now in delphi mode for private methods; looks like a delphi bug 2005-02-01 22:50:50 +00:00
peter
8d251e8506 * unit mapping rewrite
* new derefmap added
2005-01-19 22:19:41 +00:00
peter
720815e13b * fix aftercosntruction calls, vmt=1 is used to indicate that
afterconstruction needs to be called
  * only accept resourcestring when objpas is loaded
2005-01-04 16:36:31 +00:00
peter
a15f1c3283 * Don't release methodpointer. It is maybe still needed when we need to
convert the calln to loadn
2005-01-02 16:58:48 +00:00
peter
c1bf99c30a * fix crash with callnode.ppuload when symtableproc=nil 2004-12-27 16:36:10 +00:00
peter
ced6bf20cd * fix lineinfo for with blocks 2004-12-26 16:22:01 +00:00
peter
29db12ecfa * disable inlining across units when the inline procedure references
a variable or procedure in the static symtable
2004-12-15 21:08:15 +00:00
peter
d387fda801 * give error when paraloc is not filled in order_parameter 2004-12-15 19:30:16 +00:00
peter
78c2af7b3c * set vo_explicit_paraloc flag 2004-12-07 16:11:52 +00:00
peter
2b6456fe16 * procvar handling for tp procvar mode fixed
* proc to procvar moved from addrnode to typeconvnode
  * inlininginfo is now allocated only for inline routines that
    can be inlined, introduced a new flag po_has_inlining_info
2004-12-05 12:28:10 +00:00
peter
57dc23a294 * fix crashes with nodeinlining 2004-12-03 16:07:04 +00:00
peter
959bdccc49 * disable pass2inline 2004-12-02 19:26:14 +00:00
Jonas Maebe
38db3679d8 * only try to replace locals from the inlined procedure with temps,
cycle now works with -dNODEINLINE
2004-11-28 14:34:59 +00:00
Jonas Maebe
f244dea6ec * fixed some bugs in the node inlining code due to the transition from
dynamic array to tlist
  * fixed some register temp bugs (node inlining still does not work again
    though)
2004-11-27 22:43:01 +00:00
peter
576e1825aa * enabled pass1 inlining from Jonas 2004-11-22 22:19:00 +00:00
peter
8cf8c54609 * fixed varargs
* replaced dynarray with tlist
2004-11-22 22:01:19 +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
e740a66636 * tparaitem removed, use tparavarsym instead
* parameter order is now calculated from paranr value in tparavarsym
2004-11-15 23:35:30 +00:00
peter
7c0b6e129e * fixed wrong typecasts 2004-11-09 17:26:47 +00:00
peter
6458bd0ce1 * tvarsym splitted 2004-11-08 22:09:58 +00:00
peter
2e161c5e9e * nf_internal flag for internal inserted typeconvs. This will
supress the generation of warning/hints
2004-11-02 12:55:16 +00:00
peter
0d506c579e * removed wrong check for symtableprocentry 2004-11-01 18:16:48 +00:00
peter
6a0aa09b20 * give IE instead of crash when no procsym is passed for calln 2004-11-01 16:58:57 +00:00
peter
c95a859f0a * generic tlocation
* move tlocation to cgutils
2004-10-31 21:45:02 +00:00
peter
e7459f5466 * heap and heapsize removed
* checkpointer fixes
2004-10-25 15:38:41 +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
560a790a57 * gen high tree makes copy in temp when there is a calln 2004-10-12 14:36:38 +00:00
peter
b0c25b50a0 * symtable allocation rewritten
* loading of parameters to local temps/regs cleanup
  * regvar support for parameters
  * regvar support for staticsymtable (main body)
2004-10-10 20:22:53 +00:00
peter
63cf4464d3 * tvarsym.varregable added, split vo_regable from varoptions 2004-10-08 17:09:43 +00:00
peter
33a834821f * paraloc branch merged 2004-09-21 17:25:12 +00:00
peter
384e764831 * use realname for abstract procs found 2004-09-13 20:29:00 +00:00
peter
8694a4b86b * use objrealname in Message1 2004-08-28 20:00:50 +00:00
peter
923569eee2 * fixed crash when passing array constructor to formal parameter 2004-08-22 10:17:13 +00:00
florian
6368652be2 * fixed several sparc alignment issues
+ Jonas' inline node patch; non functional yet
2004-08-14 14:50:42 +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
Jonas Maebe
7cdc049df1 * the condition for when to use a temp in case of reference var/const
parameters was inverse
2004-07-15 21:02:05 +00:00
Jonas Maebe
c7fbf7b11b + (incomplete) node_complexity function to assess the complexity of a
tree
  + support for inlining value and const parameters at the node level
    (all procedures without local variables and without formal parameters
     can now be inlined at the node level)
2004-07-15 19:55:39 +00:00