mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-24 00:21:02 +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;
|
inlineinitstatement:=nil;
|
||||||
inlinecleanupstatement:=nil;
|
inlinecleanupstatement:=nil;
|
||||||
|
|
||||||
{ we cannot replace the whole block by a single assignment if the call
|
n:=optimize_funcret_assignment(inlineblock);
|
||||||
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;
|
|
||||||
if assigned(n) then
|
if assigned(n) then
|
||||||
begin
|
begin
|
||||||
inlineblock.free;
|
inlineblock.free;
|
||||||
|
Loading…
Reference in New Issue
Block a user