mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-05 21:10:24 +02:00
* updated comments to reflect latest changes to cse
git-svn-id: trunk@22054 -
This commit is contained in:
parent
a43d433081
commit
1c2ed53735
@ -1,7 +1,7 @@
|
||||
{
|
||||
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
|
||||
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:
|
||||
- call para nodes are cse barriers because they can be reordered and thus the
|
||||
temp. creation can 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
|
||||
temp. creation could be done too late
|
||||
- the cse knows nothing about register pressure. In case of high register pressure, cse might
|
||||
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
|
||||
|
||||
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;
|
||||
exit;
|
||||
end;
|
||||
{ so far, we can handle only nodes being read }
|
||||
if
|
||||
{ node possible to add? }
|
||||
assigned(n.resultdef) and
|
||||
|
Loading…
Reference in New Issue
Block a user