* work with actualtargetnode when checking load nodes for cse

git-svn-id: trunk@25434 -
This commit is contained in:
florian 2013-09-07 17:44:44 +00:00
parent dc567acc9a
commit b4481544ef

View File

@ -178,10 +178,10 @@ unit optcse;
load nodes are not considered if they load para or local symbols from the load nodes are not considered if they load para or local symbols from the
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(actualtargetnode(@n)^.nodetype=loadn) or
not(tloadnode(n).symtableentry.typ in [paravarsym,localvarsym,staticvarsym]) or not(tloadnode(actualtargetnode(@n)^).symtableentry.typ in [paravarsym,localvarsym,staticvarsym]) or
{ apply cse on non-regable static variables } { apply cse on non-regable static variables }
((tloadnode(n).symtableentry.typ=staticvarsym) and (tstaticvarsym(tloadnode(n).symtableentry).varregable=vr_none)) or ((tloadnode(actualtargetnode(@n)^).symtableentry.typ=staticvarsym) and (tstaticvarsym(tloadnode(actualtargetnode(@n)^).symtableentry).varregable=vr_none)) or
(node_complexity(n)>1) (node_complexity(n)>1)
) and ) and