aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2010-08-18 20:06:05 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2010-08-18 20:06:05 +0000
commitcf16bea74e3a6f84af914520562e9f9c5dfa0fad (patch)
tree18e7a350b178e674b9823e8771b448b2a51dc4ba
parent4d440bd786ae4dad7035c30fd09044a9efc8dccd (diff)
downloadexternal_llvm-cf16bea74e3a6f84af914520562e9f9c5dfa0fad.tar.gz
external_llvm-cf16bea74e3a6f84af914520562e9f9c5dfa0fad.tar.bz2
external_llvm-cf16bea74e3a6f84af914520562e9f9c5dfa0fad.zip
Revert r111394. It was too aggressive.
We must complete the DFS, otherwise we might miss needed phi-defs, and prematurely color live ranges with a non-dominating value. This is not a big deal since we get to color more of the CFG and the next mapValue call will be faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111397 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/ADT/DepthFirstIterator.h9
-rw-r--r--lib/CodeGen/SplitKit.cpp6
2 files changed, 3 insertions, 12 deletions
diff --git a/include/llvm/ADT/DepthFirstIterator.h b/include/llvm/ADT/DepthFirstIterator.h
index 3edb555078..b9e5cbdf8c 100644
--- a/include/llvm/ADT/DepthFirstIterator.h
+++ b/include/llvm/ADT/DepthFirstIterator.h
@@ -193,15 +193,6 @@ public:
NodeType *getPath(unsigned n) const {
return VisitStack[n].first.getPointer();
}
-
- /// skipChildren - Skip all children of Node, assuming that Node is on the
- /// current path. This allows more aggressive pruning than just skipping
- /// children of the current node.
- _Self& skipChildren(NodeType *Node) {
- while (!VisitStack.empty() && **this != Node)
- VisitStack.pop_back();
- return skipChildren();
- }
};
diff --git a/lib/CodeGen/SplitKit.cpp b/lib/CodeGen/SplitKit.cpp
index dae282dfce..b081bf3733 100644
--- a/lib/CodeGen/SplitKit.cpp
+++ b/lib/CodeGen/SplitKit.cpp
@@ -446,9 +446,9 @@ VNInfo *LiveIntervalMap::mapValue(const VNInfo *ParentVNI, SlotIndex Idx) {
}
// No need to search the children, we found a dominating value.
- // MBB is either the found dominating value, or the last phi-def we created.
- // Either way, the children of MBB would be shadowed, so don't search them.
- IDFI.skipChildren(MBB);
+ // FIXME: We could prune up to the last phi-def we inserted, need df_iterator
+ // for that.
+ IDFI.skipChildren();
}
// The search should at least find a dominating value for IdxMBB.