florian
|
63f6afffd5
+ make empty proc. removal switchable by removeemptyprocs
|
12 years ago |
svenbarth
|
344571cb4e
Added support for type helpers. In non Delphi modes they use "type helper" and in mode Delphi they use "record helper". They can also be used on constants.
|
12 years ago |
Jonas Maebe
|
9cbff6f5a6
+ support for record constructors for the JVM target
|
12 years ago |
Jonas Maebe
|
9145f1d67d
* integrated potype_constructor check in maybe_create_funcret_node
|
12 years ago |
florian
|
cad1309935
* don't write directly to the function result destination if we are inlining and if the destination is too complex to evaluate (threadvar etc.)
|
12 years ago |
paul
|
b2a613c17f
compiler: implement record constructors + tests
|
12 years ago |
paul
|
51825b6f2e
compiler: change ret_in_param to accept tabstractprocdef instead of tproccalloption to allow check more options (required for record constructor implementation)
|
12 years ago |
florian
|
329257d76e
* check for empty procedures after helper test so even empty helper methods cannot be called directly
|
12 years ago |
florian
|
24f518f232
+ redirect calls to empty virtual methods to FPC_EMPTYMETHOD
|
12 years ago |
florian
|
4d6471fef6
* get rid of calls to empty procedures having parameters without side effect
|
12 years ago |
Jonas Maebe
|
d9e67fc835
* don't add a separate high parameter for array-of-const parameters on the
|
12 years ago |
svenbarth
|
2db54da2b3
m68k also uses a non fixed stack with an equivalent to PUSH/POP so don't reorder parameters
|
13 years ago |
Jonas Maebe
|
f5de7e34d3
* only remove the calculation of unused parameters of inline routines if
|
13 years ago |
florian
|
1cd6f2355b
* don't copy const parameters passed by reference even if their complexity is >1,
|
13 years ago |
Jonas Maebe
|
f3ad4af343
* make sure valid_for_assign() returns false for inlined function bodies
|
13 years ago |
florian
|
bd47ba6ba4
* the address of complex inline parameters can be hold always in a register
|
13 years ago |
florian
|
5b90a02e75
* inherit nf_write/nf_modify in tcallnode.replaceparaload also when replacing parameters
|
13 years ago |
florian
|
2c122a9bf6
* inherit modification flag from load nodes when creating temp nodes when inlining, dfa/cse need this information
|
13 years ago |
florian
|
4d86d25c6c
* -O4 switch for optimizations which are correct but which might have unexpected effects
|
13 years ago |
Jonas Maebe
|
b50d0aa3d0
* only don't pre-finalize funcret temps that are passed by reference to the
|
13 years ago |
Jonas Maebe
|
3414f91590
* minor reformatting, and removed superfluous assigned test (the value is
|
13 years ago |
Jonas Maebe
|
9412d4abd2
* add a reference to the procsym corresponding to the chosen overloaded
|
13 years ago |
florian
|
af7bb6faab
* ignore unused parameters when inlining
|
13 years ago |
Jonas Maebe
|
baa8fa39a8
* converted code to trash variables (-gt) to operate at the node tree level,
|
13 years ago |
florian
|
6c8eed21c4
+ implement auto inlining (-Ooautoinline)
|
13 years ago |
Jonas Maebe
|
834026bfb5
* synchronised with trunk up to r21067
|
13 years ago |
sergei
|
04ca8a9126
* translate_disp_call: improved building the parameter block by using ttemprefnode.create_offset instead of taking address/pointer additions/dereference. Results in simpler node tree and lesser CPU instructions generated.
|
13 years ago |
sergei
|
6d0dd50be3
* tcallnode.maybe_load_in_temp: treat asnode like callnode, because asnodes are converted into helper calls in pass 1. Improves code generated for expressions "(a as b).SomeMethod".
|
13 years ago |
Jonas Maebe
|
aee5380ae0
* merged trunk up to r20882
|
13 years ago |
florian
|
a7b46fc36f
* don't create a temp. for a dereferenced pointer which is passed to a var parameter of an inline procedure
|
13 years ago |