* updated comments to reflect latest changes to cse

git-svn-id: trunk@22054 -
This commit is contained in:
florian 2012-08-09 20:18:04 +00:00
parent a43d433081
commit 1c2ed53735

View File

@ -1,7 +1,7 @@
{ {
Common subexpression elimination on base blocks Common subexpression elimination on base blocks
Copyright (c) 2005 by Florian Klaempfl Copyright (c) 2005-2012 by Florian Klaempfl
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -34,13 +34,9 @@ unit optcse;
{ {
the function creates non optimal code so far: the function creates non optimal code so far:
- call para nodes are cse barriers because they can be reordered and thus the - call para nodes are cse barriers because they can be reordered and thus the
temp. creation can be done too late temp. creation could be done too late
- cse's in chained expressions are not recognized: the common subexpression
in (a1 and b and c) vs. (a2 and b and c) is not recognized because there is no common
subtree b and c
- the cse knows nothing about register pressure. In case of high register pressure, cse might - the cse knows nothing about register pressure. In case of high register pressure, cse might
have a negative impact have a negative impact
- assignment nodes are currently cse borders: things like a[i,j]:=a[i,j]+1; are not improved
- the list of cseinvariant node types and inline numbers is not complete yet - the list of cseinvariant node types and inline numbers is not complete yet
Further, it could be done probably in a faster way though the complexity can't probably not reduced Further, it could be done probably in a faster way though the complexity can't probably not reduced
@ -123,7 +119,6 @@ unit optcse;
result:=fen_norecurse_false; result:=fen_norecurse_false;
exit; exit;
end; end;
{ so far, we can handle only nodes being read }
if if
{ node possible to add? } { node possible to add? }
assigned(n.resultdef) and assigned(n.resultdef) and