Просмотр исходного кода

+ support for notn,shln,shrn,equaln,unequaln,gtn,gten,ltn,lten in
node_cplexity()
* mark muln,divn,modn as more complex

git-svn-id: branches/fpc_2_3@6456 -

Jonas Maebe 18 лет назад
Родитель
Сommit
be4df36379
1 измененных файлов с 5 добавлено и 1 удалено
  1. 5 1
      compiler/nutils.pas

+ 5 - 1
compiler/nutils.pas

@@ -592,6 +592,7 @@ implementation
                 end;
               blockn:
                 p := tunarynode(p).left;
+              notn,
               derefn :
                 begin
                   inc(result);
@@ -619,11 +620,14 @@ implementation
                     end;
                   p := tbinarynode(p).right;
                 end;
-              { better: make muln/divn/modn more expensive }
               addn,subn,orn,andn,xorn,muln,divn,modn,symdifn,
+              shln,shrn,
+              equaln,unequaln,gtn,gten,ltn,lten,
               assignn:
                 begin
                   inc(result,node_complexity(tbinarynode(p).left)+1);
+                  if (p.nodetype in [muln,divn,modn]) then
+                    inc(result,5);
                   if (result >= NODE_COMPLEXITY_INF) then
                     begin
                       result := NODE_COMPLEXITY_INF;