Browse Source

* inline more aggressively, if the ie for the initial change re-appears, it must be fixed differently

git-svn-id: trunk@47057 -
florian 4 năm trước cách đây
mục cha
commit
ab9fa2012b
1 tập tin đã thay đổi với 1 bổ sung12 xóa
  1. 1 12
      compiler/ncal.pas

+ 1 - 12
compiler/ncal.pas

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