Explorar o código

* don't apply cse on static variables being regable

git-svn-id: trunk@23785 -
florian %!s(int64=12) %!d(string=hai) anos
pai
achega
2c7b34cda1
Modificáronse 1 ficheiros con 3 adicións e 1 borrados
  1. 3 1
      compiler/optcse.pas

+ 3 - 1
compiler/optcse.pas

@@ -179,7 +179,9 @@ unit optcse;
               current stack frame, those are in registers anyways if possible
               current stack frame, those are in registers anyways if possible
             }
             }
             (not(n.nodetype=loadn) or
             (not(n.nodetype=loadn) or
-             not(tloadnode(n).symtableentry.typ in [paravarsym,localvarsym]) or
+             not(tloadnode(n).symtableentry.typ in [paravarsym,localvarsym,staticvarsym]) or
+             { apply cse on non-regable static variables }
+             ((tloadnode(n).symtableentry.typ=staticvarsym) and (tstaticvarsym(tloadnode(n).symtableentry).varregable=vr_none)) or
              (node_complexity(n)>1)
              (node_complexity(n)>1)
             ) and
             ) and