* 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:
florian 2020-10-06 19:43:16 +00:00
parent 722e8d94cd
commit ab9fa2012b

View File

@ -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;