florian
cea7723080
* more use of RemoveCurrentP(p)
...
git-svn-id: trunk@44264 -
2020-03-05 21:49:36 +00:00
florian
9819df6fe1
* calculate complexity of an rtti node correctly
...
git-svn-id: trunk@44261 -
2020-03-03 21:29:52 +00:00
svenbarth
9c088bda6a
* fix for Mantis #36706 : only link a library against the dynamic loader if we're not linking against the C library anyway
...
Note: I did not yet find a case where we *do* need to link a library against the loader; this will have to be investigated further, but for 3.2.0 this is safest
git-svn-id: trunk@44256 -
2020-03-02 22:04:36 +00:00
florian
f42b0bf6f5
* fixed JccAdd/Inc/Dec2*Adc/Sbb optimizations
...
git-svn-id: trunk@44254 -
2020-03-01 21:21:18 +00:00
florian
34be9e4643
* CallRet2* optimization may not misalign the stack, reported by C Western on fpc-devel
...
git-svn-id: trunk@44253 -
2020-03-01 09:37:09 +00:00
florian
ac974c9ab7
* improve is_loop_invariant for load nodes
...
git-svn-id: trunk@44252 -
2020-02-29 21:15:15 +00:00
florian
507fc9c1ff
+ take care of addn and subn in is_loop_invariant
...
git-svn-id: trunk@44251 -
2020-02-28 20:42:54 +00:00
florian
80c0fc3c92
* several fixes to get better reg. allocations in the arm assembler optimizer
...
git-svn-id: trunk@44245 -
2020-02-26 20:59:35 +00:00
florian
62129db44c
* ARM: look further ahead when optimizing mov rX, yyyy
...
* ARM: fix Mov0 and MovMLA2MUL optimizations
git-svn-id: trunk@44244 -
2020-02-25 21:28:53 +00:00
florian
9132b54b3b
+ ARM: MovMLA2MUL optimization
...
git-svn-id: trunk@44243 -
2020-02-25 21:28:52 +00:00
florian
684ef3008f
* ARM: optimize mov rX,#0 .... mul/mla/umull ...,rX,...
...
git-svn-id: trunk@44242 -
2020-02-24 21:10:55 +00:00
florian
9bdfbc2473
+ GetNextInstructionUsingRegTrackingUse
...
* better MovAnd2Mov optimization
+ TOptsToCheck to track expensive optimizations, needs more work
git-svn-id: trunk@44241 -
2020-02-23 21:47:47 +00:00
florian
a357359971
* LeaCallLeaRet2Jmp is done in TX86AsmOptimizer.PostPeepholeOptLea
...
git-svn-id: trunk@44240 -
2020-02-23 21:21:40 +00:00
florian
c7b19e2fc9
* track used register better: if a deallocation is moved/removed, the used register may not be removed from the current register used register set
...
git-svn-id: trunk@44239 -
2020-02-23 18:24:31 +00:00
florian
2acc6337d8
* debug statement removed
...
git-svn-id: trunk@44234 -
2020-02-22 22:38:36 +00:00
florian
4dff373fef
* (modified) patch by J. Gareth Moreton: processor-aware MOVZX optimisation cleanup, resolves #36687
...
git-svn-id: trunk@44233 -
2020-02-22 18:37:38 +00:00
florian
c146aecc01
* throw an error if the forward interface type and the actual interface type do not match, resolves #36720
...
git-svn-id: trunk@44230 -
2020-02-21 20:35:27 +00:00
florian
49f789b92a
* reverted accidently committed changes again
...
git-svn-id: trunk@44218 -
2020-02-19 21:12:23 +00:00
florian
95e8992e2f
+ AArch64: profiler support for aarch64-linux
...
git-svn-id: trunk@44216 -
2020-02-19 21:10:19 +00:00
pierre
346118187b
Fix linking error, in which libc.so.6 is not found on aarch64-linux when libdl.so is loaded, by adding appropriate directory
...
git-svn-id: trunk@44215 -
2020-02-19 15:33:11 +00:00
florian
3099e10f41
* revert accidently committed code
...
git-svn-id: trunk@44205 -
2020-02-17 20:12:53 +00:00
florian
e50c4f6373
+ AAarch64: optimize divisions by constant
...
git-svn-id: trunk@44204 -
2020-02-17 20:11:32 +00:00
florian
93521ae8e8
* fold also pointer additions/subtractions
...
git-svn-id: trunk@44199 -
2020-02-16 20:14:28 +00:00
florian
27e89e07a3
* in case a 32x32 -> 64 multiplication is converted into shl, the type casts need to be restored
...
git-svn-id: trunk@44197 -
2020-02-16 20:14:27 +00:00
florian
9989d408fd
* AArch64 and i386: omit exit stackframe, same as r44191 for x86-64
...
git-svn-id: trunk@44196 -
2020-02-16 20:14:26 +00:00
Jonas Maebe
3188dc18d4
* fixed tdel1/2 tests again for AArch64/LLVM
...
git-svn-id: trunk@44195 -
2020-02-16 16:58:25 +00:00
florian
88836b467e
* (V)MOVA*(V)MOVS*2(V)MOVS* 1 optimization
...
git-svn-id: trunk@44194 -
2020-02-16 16:43:26 +00:00
florian
42324235bd
+ CallRet2Call optimization
...
git-svn-id: trunk@44192 -
2020-02-16 13:15:12 +00:00
florian
ef3155c2ef
* there is no exit stackframe needed if a subroutine never returns
...
git-svn-id: trunk@44191 -
2020-02-16 13:06:19 +00:00
svenbarth
2ad3c6dd97
* fix global generic functions with constraints in mode Delphi by handling implementations with defines outside of parse_generic_parameters
...
+ added tests
git-svn-id: trunk@44189 -
2020-02-16 09:53:37 +00:00
svenbarth
41a6957f7d
* keep track of the fileposinfo for generic constraints
...
git-svn-id: trunk@44188 -
2020-02-16 09:53:32 +00:00
florian
892454ff17
* patch by J. Gareth Moreton: optimize MOVSXD as well, resolves #36700
...
git-svn-id: trunk@44185 -
2020-02-15 20:53:40 +00:00
florian
e350264db1
+ propagate constants across call nodes
...
git-svn-id: trunk@44184 -
2020-02-15 18:27:22 +00:00
florian
3947922fea
* set nf_* correctly when an inc/dec node is converted into an add/sub node
...
* do not firstpass during dead store removal as it disturbes the for each calls
git-svn-id: trunk@44180 -
2020-02-15 13:53:16 +00:00
florian
fc50edfe31
* AVR: couple of fixes for CPUs with only 16 registers
...
git-svn-id: trunk@44177 -
2020-02-14 21:27:43 +00:00
florian
013491c69f
* make maxpushedparasize a SizeInt: it must store an address size and not an alu value
...
git-svn-id: trunk@44176 -
2020-02-14 21:27:16 +00:00
florian
0424c2a658
* remove accidently committed debug code
...
git-svn-id: trunk@44175 -
2020-02-14 20:59:32 +00:00
florian
b7afb2431c
* do not allow constraints in headers of procedure implementations in delphi mode, resolves #36584
...
* better error message if a constraint is found at a wrong location
git-svn-id: trunk@44174 -
2020-02-14 20:56:55 +00:00
svenbarth
c4f3f7f453
* only resolve a dummy symbol if it is a type symbol (thus truly a dummy symbol)
...
+ added tests
git-svn-id: trunk@44172 -
2020-02-14 16:49:07 +00:00
svenbarth
20698bb36f
* regenerate msg*.inc after last commit
...
git-svn-id: trunk@44171 -
2020-02-14 16:49:04 +00:00
svenbarth
147559349b
* fix for Mantis #36652 : gracefully handle the error if one tries to implement a method of a type from another unit
...
+ added test
git-svn-id: trunk@44170 -
2020-02-14 16:48:58 +00:00
florian
3279e63351
* patch by J. Gareth Moreton: cleanup TX86AsmOptimizer.OptPass2MOV after DeepMov changes, second part of #36670
...
git-svn-id: trunk@44166 -
2020-02-13 20:53:39 +00:00
florian
251b18b966
* do not fold constants if the resulttypes do not match, improved fix for #tw26587
...
git-svn-id: trunk@44165 -
2020-02-13 20:34:27 +00:00
florian
3a5eb0ec59
* patch by J. Gareth Moreton: cleanup TX86AsmOptimizer.OptPass1MOV after DeepMov changes, first part of #36670
...
git-svn-id: trunk@44164 -
2020-02-13 20:20:10 +00:00
florian
fd4fb5fa19
* patch by Christo Crause: combine code paths for avr1 and avrtiny when converting lds/sts to in/out, resolves #36697
...
git-svn-id: trunk@44163 -
2020-02-12 20:43:13 +00:00
florian
f632e2e7be
* simplified TX86AsmOptimizer.OptPass1Movx
...
git-svn-id: trunk@44162 -
2020-02-12 20:23:06 +00:00
florian
21565c2284
* fixed Mov2Movz optimization
...
git-svn-id: trunk@44161 -
2020-02-12 19:26:52 +00:00
florian
c6350e2903
* patch by J. Gareth Moreton: processor-aware MOVZX optimisation cleanup, part one of #36687
...
git-svn-id: trunk@44153 -
2020-02-11 20:56:20 +00:00
yury
39c48f0d01
* Fixed r43577 for cases when the size of the new result of a simplified node after typecheckpass is smaller than the size of the original node's result. This caused internal errors or invalid assembly in some cases. Issue #36587 .
...
git-svn-id: trunk@44151 -
2020-02-11 12:49:12 +00:00
florian
e7d2c93ca7
* patch by J. Gareth Moreton: deadstore removal improvement, resolves #36669
...
git-svn-id: trunk@44147 -
2020-02-10 20:48:45 +00:00