Browse Source

* certain type conversions have no cost (also fixes problem of
inc(int64) with regvars turned on on non-64bit platforms)

Jonas Maebe 20 years ago
parent
commit
95348379fa
1 changed files with 8 additions and 3 deletions
  1. 8 3
      compiler/nutils.pas

+ 8 - 3
compiler/nutils.pas

@@ -72,7 +72,7 @@ implementation
     uses
     uses
       globtype,globals,verbose,
       globtype,globals,verbose,
       symconst,symbase,symtype,symdef,symtable,
       symconst,symbase,symtype,symdef,symtable,
-      defutil,
+      defutil,defcmp,
       nbas,ncon,ncnv,nld,nflw,nset,ncal,nadd,nmem,
       nbas,ncon,ncnv,nld,nflw,nset,ncal,nadd,nmem,
       cgbase,procinfo,
       cgbase,procinfo,
       pass_1;
       pass_1;
@@ -483,7 +483,8 @@ implementation
               { may be more complex in some cases }
               { may be more complex in some cases }
               typeconvn:
               typeconvn:
                 begin
                 begin
-                  inc(result);
+                  if not(ttypeconvnode(p).convtype in [tc_equal,tc_int_2_int,tc_bool_2_bool,tc_real_2_real,tc_cord_2_pointer]) then
+                    inc(result);
                   if (result = NODE_COMPLEXITY_INF) then
                   if (result = NODE_COMPLEXITY_INF) then
                     exit;
                     exit;
                   p := tunarynode(p).left;
                   p := tunarynode(p).left;
@@ -530,7 +531,11 @@ end.
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.24  2004-12-05 12:28:11  peter
+  Revision 1.25  2004-12-10 13:16:31  jonas
+    * certain type conversions have no cost (also fixes problem of
+      inc(int64) with regvars turned on on non-64bit platforms)
+
+  Revision 1.24  2004/12/05 12:28:11  peter
     * procvar handling for tp procvar mode fixed
     * procvar handling for tp procvar mode fixed
     * proc to procvar moved from addrnode to typeconvnode
     * proc to procvar moved from addrnode to typeconvnode
     * inlininginfo is now allocated only for inline routines that
     * inlininginfo is now allocated only for inline routines that