* apply cse to all non-regable variables if possible

git-svn-id: trunk@26579 -
This commit is contained in:
florian 2014-01-25 08:50:13 +00:00
parent 03b859947f
commit 1b355ce1e4

View File

@ -180,8 +180,10 @@ unit optcse;
}
(not(actualtargetnode(@n)^.nodetype=loadn) or
not(tloadnode(actualtargetnode(@n)^).symtableentry.typ in [paravarsym,localvarsym,staticvarsym]) or
{ apply cse on non-regable static variables }
((tloadnode(actualtargetnode(@n)^).symtableentry.typ=staticvarsym) and (tstaticvarsym(tloadnode(actualtargetnode(@n)^).symtableentry).varregable=vr_none)) or
{ apply cse on non-regable variables }
((tloadnode(actualtargetnode(@n)^).symtableentry.typ in [paravarsym,localvarsym,staticvarsym]) and
not(tabstractvarsym(tloadnode(actualtargetnode(@n)^).symtableentry).is_regvar(false)) and
not(vo_volatile in tabstractvarsym(tloadnode(actualtargetnode(@n)^).symtableentry).varoptions)) or
(node_complexity(n)>1)
) and