mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 04:19:07 +02:00
* inline more aggressively, if the ie for the initial change re-appears, it must be fixed differently
git-svn-id: trunk@47057 -
This commit is contained in:
parent
722e8d94cd
commit
ab9fa2012b
@ -5203,18 +5203,7 @@ implementation
|
||||
inlineinitstatement:=nil;
|
||||
inlinecleanupstatement:=nil;
|
||||
|
||||
{ we cannot replace the whole block by a single assignment if the call
|
||||
has an init/cleanup block
|
||||
|
||||
we could though (not yet done), convert this into a bew block
|
||||
consisting of the init code, the single assignment and the cleanup block
|
||||
This might even enable new transformations }
|
||||
if not(assigned(callinitblock)) and not(assigned(callcleanupblock)) then
|
||||
{ if all that's left of the inlined function is an constant assignment
|
||||
to the result, replace the whole block with the constant only }
|
||||
n:=optimize_funcret_assignment(inlineblock)
|
||||
else
|
||||
n:=nil;
|
||||
n:=optimize_funcret_assignment(inlineblock);
|
||||
if assigned(n) then
|
||||
begin
|
||||
inlineblock.free;
|
||||
|
Loading…
Reference in New Issue
Block a user