浏览代码

* when getting rid of a for loop by unrolling, simplify the block afterwards,
this requires also that the constant is first passed

git-svn-id: trunk@33244 -

florian 9 年之前
父节点
当前提交
b59219b8e0
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      compiler/optloop.pas

+ 2 - 0
compiler/optloop.pas

@@ -87,6 +87,7 @@ unit optloop;
               internalerror(2012090402);
             n.free;
             n:=cordconstnode.create(preplaceinfo(arg)^.value,preplaceinfo(arg)^.node.resultdef,false);
+            do_firstpass(n);
           end;
         result:=fen_false;
       end;
@@ -185,6 +186,7 @@ unit optloop;
                     { create block statement }
                     result:=internalstatements(newforstatement);
                     addstatement(newforstatement,unrollblock);
+                    doinlinesimplify(result);
                   end;
               end
             else