summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Transforms/Scalar/PRE.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/Transforms/Scalar/PRE.cpp b/lib/Transforms/Scalar/PRE.cpp
index 6227a371eb..3a1239f4e6 100644
--- a/lib/Transforms/Scalar/PRE.cpp
+++ b/lib/Transforms/Scalar/PRE.cpp
@@ -307,6 +307,17 @@ bool PRE::ProcessExpression(Instruction *Expr) {
std::vector<Value*> Values;
VN->getEqualNumberNodes(Expr, Values);
+#if 0
+ // FIXME: This should handle PHI nodes correctly. To do this, we need to
+ // consider expressions of the following form equivalent to this set of
+ // expressions:
+ //
+ // If an operand is a PHI node, add any occurances of the expression with the
+ // PHI operand replaced with the PHI node operands. This is only valid if the
+ // PHI operand occurances exist in blocks post-dominated by the incoming edge
+ // of the PHI node.
+#endif
+
// We have to be careful to handle expression definitions which dominated by
// other expressions. These can be directly eliminated in favor of their
// dominating value. Keep track of which blocks contain definitions (the key)