Browse Source

* don't apply cse on static variables being regable

git-svn-id: trunk@23785 -
florian 12 years ago
parent
commit
2c7b34cda1
1 changed files with 3 additions and 1 deletions
  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
             }
             (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)
             ) and