This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
[tree-ssa]quick SSAPRE question
- From: Per Fransson <fransson at cs dot lth dot se>
- To: gcc <gcc at gcc dot gnu dot org>
- Date: Fri, 26 Sep 2003 13:32:36 +0200 (CEST)
- Subject: [tree-ssa]quick SSAPRE question
Hello,
I know this isn't really a gcc question, but I figured this was the one
place I could find a lot of people who have read:
"Partial Redundancy Elimination in SSA Form." ACM Transactions on
Programming Languages and Systems, 21(3): 627-676, 1999. (Robert
Kennedy, Sun Chan, Shin-Ming Liu, Raymond Lo, Peng Tu, and Fred Chow)
I don't know how many times I've started reading this article and I
*always* get stuck in the same place:
In section 2.3 definition 2 explains "redundant" as:
"If E1 and E2 are occurrences of some computation E and there is a control
flow path from E1 to E2 containing nothing that may alter the value of E,
we say that E2 is redundant with respect to E1."
Definition 3 in the same section explains "exposed" as:
"Let E1 be an occurrence of some computation E, and let p be some point in
the program. If there is a control flow path from p to E1 containing
nothing that may alter the value of E and containing no occurrence of E
between p and E1, we say that E1 is exposed with respect to p."
Immediately thereafter a set (omega) is defined as:
"the set of occurrences with respect to which an
occurrence E0 is exposed and redundant"
What am I missing here? It seems to me that if E0 is exposed with
respect to an occurence it *must* also be redundant with respect to that
occurence, making the "...and redundant" part in the definition of omega
unnecessary.
If no one here can help me with this question, maybe you can point me in
the direction of a better forum for it.
Thanks in advance.
/Per