فهرست منبع

* better complexity estimation for some inline nodes

git-svn-id: trunk@27674 -
florian 11 سال پیش
والد
کامیت
6dd2edb10d
1فایلهای تغییر یافته به همراه15 افزوده شده و 6 حذف شده
  1. 15 6
      compiler/nutils.pas

+ 15 - 6
compiler/nutils.pas

@@ -716,14 +716,8 @@ implementation
                     in_trunc_real,
                     in_int_real,
                     in_frac_real,
-                    in_cos_real,
-                    in_sin_real,
-                    in_arctan_real,
                     in_pi_real,
                     in_abs_real,
-                    in_sqr_real,
-                    in_sqrt_real,
-                    in_ln_real,
                     in_aligned_x,
                     in_unaligned_x,
                     in_prefetch_var:
@@ -731,6 +725,21 @@ implementation
                         inc(result);
                         p:=tunarynode(p).left;
                       end;
+                    in_cos_real,
+                    in_sin_real,
+                    in_arctan_real,
+                    in_sqr_real,
+                    in_sqrt_real,
+                    in_ln_real:
+                      begin
+                        inc(result,2);
+                        if (result >= NODE_COMPLEXITY_INF) then
+                          begin
+                            result:=NODE_COMPLEXITY_INF;
+                            exit;
+                          end;
+                        p:=tunarynode(p).left;
+                      end;
                     in_abs_long:
                       begin
                         inc(result,3);