Commit Graph

742 Commits

Author SHA1 Message Date
svenbarth
7330a0156c * fix writing of the method and parameter names for the Variant call description
git-svn-id: trunk@49479 -
2021-06-05 17:43:49 +00:00
pierre
c8c6e647be Avoid keeping optimized out node in callcleanupblock.statements or callinitblock.statements
git-svn-id: trunk@49094 -
2021-03-31 20:53:08 +00:00
nickysn
7ac2f9e242 * synchronized with trunk
git-svn-id: branches/wasm@48660 -
2021-02-13 02:46:23 +00:00
yury
afc80a84cf * Fixed r48650.
git-svn-id: trunk@48657 -
2021-02-12 11:26:37 +00:00
nickysn
a74024e7d5 * synchronized with trunk
git-svn-id: branches/wasm@48654 -
2021-02-12 01:54:24 +00:00
yury
4245b20a32 * Fixed expectloc of local variables passed as a formal parameter. This issue is caught by cycling the compiler with -dEXTDEBUG. Yet the compiler can't cycle with EXTDEBUG due to other issues with wrong expectloc.
git-svn-id: trunk@48650 -
2021-02-11 10:39:41 +00:00
nickysn
8b4aceea50 * synchronized with trunk
git-svn-id: branches/wasm@48134 -
2021-01-11 07:01:01 +00:00
Jonas Maebe
5c2303a76b * add parameter cleanup nodes to the call cleanup block (mantis #38316)
git-svn-id: trunk@48130 -
2021-01-10 15:47:27 +00:00
nickysn
91e9558f5b * synchronized with trunk
git-svn-id: branches/wasm@47766 -
2020-12-12 23:20:33 +00:00
florian
c82aae59a1 * call node_complexity correctly in order_parameters when sorting parameters
git-svn-id: trunk@47763 -
2020-12-11 22:14:18 +00:00
svenbarth
1efeb5851a * fix regression introduced with r47625 for Mantis #38122: when checking for a dereferentiation of the Self parameter subscript and vec nodes need to be kept
+ added test

git-svn-id: trunk@47747 -
2020-12-10 06:11:46 +00:00
nickysn
dc5b78d5f0 * synchronized with trunk
git-svn-id: branches/wasm@47716 -
2020-12-08 06:57:57 +00:00
svenbarth
69e6f3dcbb * if a call inside a generic's code that involves generic type arguments can't be clearly determined then postpone it till specialization in the hope that the type will be clear then
+ added test

git-svn-id: trunk@47686 -
2020-12-04 22:07:34 +00:00
nickysn
aeafe42144 * synchronized with trunk
git-svn-id: branches/wasm@47653 -
2020-12-01 03:27:01 +00:00
svenbarth
82957ec5a3 * Fix for Mantis #38122: when a deref node is passed as a Self parameter for a type helper (which is a var parameter) we need to pass the non-derefentiated value so that the data it points to can be modified by the helper's method (this is Delphi compatible)
+ added tests

git-svn-id: trunk@47625 -
2020-11-28 18:32:24 +00:00
nickysn
48b81da877 * synchronized with trunk
git-svn-id: branches/wasm@47249 -
2020-10-29 10:49:36 +00:00
florian
3baddff71e + inline subroutines with formal parameters as well
git-svn-id: trunk@47214 -
2020-10-26 22:18:03 +00:00
nickysn
446d824ad6 * synchronized with trunk
git-svn-id: branches/wasm@47067 -
2020-10-08 21:29:04 +00:00
florian
ab9fa2012b * inline more aggressively, if the ie for the initial change re-appears, it must be fixed differently
git-svn-id: trunk@47057 -
2020-10-06 19:43:16 +00:00
nickysn
38c4c93cee * synchronized with trunk
git-svn-id: branches/wasm@46977 -
2020-09-27 22:18:36 +00:00
florian
a628c1c3dd * if an array constructor is passed to a formaldef parameter, it is passed as a set (if the conversion is possible), resolves #37796
git-svn-id: trunk@46973 -
2020-09-27 16:37:20 +00:00
nickysn
d8a9bd4da0 * synchronized with trunk
git-svn-id: branches/wasm@46736 -
2020-08-30 23:47:35 +00:00
florian
b36597c76a * better calculation of estimated stack frame size
git-svn-id: trunk@46733 -
2020-08-30 20:53:59 +00:00
nickysn
7bab5b6483 * synchronized with trunk
git-svn-id: branches/wasm@46681 -
2020-08-25 00:15:56 +00:00
Jonas Maebe
453bfcd370 * emit the correct declaration for procdefs used to force a procname in LLVM
o fixes lazarus startup on macOS/AArch64 when compiled with the LLVM cg

git-svn-id: trunk@46675 -
2020-08-23 21:11:09 +00:00
nickysn
988a833836 * synchronized with trunk
git-svn-id: branches/wasm@46665 -
2020-08-23 15:31:53 +00:00
Jonas Maebe
d1d3d7cd08 * never create a regular temp for inline parameters that can be modified by
the caller (mantis #37465)a
   o in theory, the regular checks for doing so should never trigger, but due
     to compiler-generated nodes (such as calls to fpc_ansistr_unique), they
     could. Internal address nodes can deal with taking the address of the
     function result in this case.

git-svn-id: trunk@46660 -
2020-08-23 11:27:59 +00:00
yury
e5a923eb7a * 8086: Proper implementation of: If a far procvar is called, it must be in a memory location. This fixes a hack to emulate CALL reg1:reg2.
git-svn-id: trunk@46641 -
2020-08-23 10:26:54 +00:00
yury
aefc1be555 * Reverted accidentally committed files.
git-svn-id: trunk@46416 -
2020-08-13 18:48:19 +00:00
yury
7b65f85a0b * Accidental commit.
git-svn-id: trunk@46415 -
2020-08-13 18:46:57 +00:00
nickysn
62cb7c2d12 * synchronized with trunk
git-svn-id: branches/wasm@46214 -
2020-08-03 21:15:39 +00:00
svenbarth
b412259c1c * fix for Mantis #37355: the method name and the named parameters need to be separated by a single #0
+ added test

git-svn-id: trunk@45974 -
2020-07-31 15:55:37 +00:00
nickysn
5e60217a88 [PATCH 15/83] updating parameters sorting for wasm. Goes left-to-right
From e8c19baf75abfeeed8ea333df70be63b08b76ff2 Mon Sep 17 00:00:00 2001
From: Dmitry Boyarintsev <skalogryz.lists@gmail.com>
Date: Wed, 4 Sep 2019 14:54:41 -0400

git-svn-id: branches/wasm@45892 -
2020-07-29 16:42:19 +00:00
Jonas Maebe
924ffe6538 * removed initialisation of unused fparacopyback from tcallparanode.copy_value_by_ref_para
git-svn-id: trunk@45822 -
2020-07-21 17:57:45 +00:00
yury
e63c03125a * Reworked tprocdef.is_implemented to fix a bug with the parentfp optimization. The bug was detected when using the llvm backend.
+ Added a test.

git-svn-id: trunk@45675 -
2020-06-21 19:52:14 +00:00
yury
7bffafdf8b * Improved the parentfp optimization to properly handle cases when a nested routine calls other nested routines.
git-svn-id: trunk@45665 -
2020-06-20 18:34:26 +00:00
yury
627fcb4354 * Do not use the LOC_VOID location to indicate unused parameters.
* Added the tprocdef.parentfpsym property. Set parentfpsym.varstate to vs_read instead of using the pio_needs_parentfp flag.
* Replaced tcgcallparanode.push_zero_sized_value_para by tparamanager.has_strict_proc_signature.

git-svn-id: trunk@45454 -
2020-05-21 09:36:40 +00:00
yury
a316229ef6 * Always use parentfp for forward-declared nested procedures.
git-svn-id: trunk@45320 -
2020-05-09 17:52:17 +00:00
Jonas Maebe
0fbb1b259e * re-added "protected" accidentally removed in r45236, fixes JVM compilation
(mantis #37016)

git-svn-id: trunk@45257 -
2020-05-04 17:08:00 +00:00
florian
b80d051249 * make fparainit and fparacopyback public
+ process fparainit and fparacopyback in foreachnode
  + print fparainit and fparacopyback
  + do not break if tcallparanode.copy_value_by_ref_para is called multiple times

git-svn-id: trunk@45236 -
2020-05-03 20:37:07 +00:00
florian
0794878b41 * allow recursive inlines, meanwhile, there are other means to avoid too deep recursion of inlining
git-svn-id: trunk@45214 -
2020-05-01 20:50:19 +00:00
nickysn
5be4ce281f * don't reorder LOC_REFERENCE parameters on the Z80 also
git-svn-id: branches/z80@45122 -
2020-04-26 19:49:17 +00:00
svenbarth
068f0d2ec8 * fix for Mantis #36935: apply patch by J. Gareth Moreton to fix a typo in cs_opt_remove_empty_proc
git-svn-id: trunk@44888 -
2020-04-20 18:42:30 +00:00
florian
1993c5d1ef * cosmetics
git-svn-id: trunk@44094 -
2020-02-02 14:30:44 +00:00
florian
98226d33b7 * do not optimize inline nodes which are part of call node which has an init and/or cleanup block, resolves #36323
git-svn-id: trunk@43553 -
2019-11-21 22:15:06 +00:00
svenbarth
0a915e883e * keep track of static symbols that a global function references, as those must now be exported from a dynamic package as well if the function can potentially be inlined
git-svn-id: trunk@43544 -
2019-11-21 21:44:53 +00:00
florian
60b3296594 * relax conditions in tcallnode.optimize_funcret_assignment, resolves #36279
git-svn-id: trunk@43501 -
2019-11-16 17:16:16 +00:00
Jonas Maebe
ac1e0f96bd * replaced tentryfile.get/putsmall/normalset() with a common tget/putset
that expects an open array of byte, and use it for all sets
   o since all sets need to be typecasted to an array type of the appropriate
     size, we'll get a compilation error in case this needs to be done and
     that also tells us at the same time that the ppu version will need to
     be increased
  * enabled {$packset 1} for the compiler, as this is now safe with the above
    changes

git-svn-id: trunk@43407 -
2019-11-06 21:50:19 +00:00
Jonas Maebe
a051b8d225 - remmoved doregister parameter from t*sym constructors, as the registration
is handled automatically nowadays

git-svn-id: trunk@42998 -
2019-09-14 17:30:45 +00:00
Jonas Maebe
956aab3be0 * implement support for the Objective-C "related result type" convention
as described on
    http://releases.llvm.org/8.0.0/tools/clang/docs/LanguageExtensions.html#objective-c-features
    (rest of mantis #35994)

git-svn-id: trunk@42816 -
2019-08-25 15:23:53 +00:00