diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-08-18 20:06:05 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-08-18 20:06:05 +0000 |
commit | f4088b022a690c740a15556d7f347a6049a6015e (patch) | |
tree | 39498a000f69fc66170d00c44e4209fc318ae272 | |
parent | e1be14df1e0dab36d4c9b2b955d799c9d7dbb8b3 (diff) | |
download | bcm5719-llvm-f4088b022a690c740a15556d7f347a6049a6015e.tar.gz bcm5719-llvm-f4088b022a690c740a15556d7f347a6049a6015e.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.
llvm-svn: 111397
-rw-r--r-- | llvm/include/llvm/ADT/DepthFirstIterator.h | 9 | ||||
-rw-r--r-- | llvm/lib/CodeGen/SplitKit.cpp | 6 |
2 files changed, 3 insertions, 12 deletions
diff --git a/llvm/include/llvm/ADT/DepthFirstIterator.h b/llvm/include/llvm/ADT/DepthFirstIterator.h index 3edb5550788..b9e5cbdf8c6 100644 --- a/llvm/include/llvm/ADT/DepthFirstIterator.h +++ b/llvm/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/llvm/lib/CodeGen/SplitKit.cpp b/llvm/lib/CodeGen/SplitKit.cpp index dae282dfce6..b081bf37337 100644 --- a/llvm/lib/CodeGen/SplitKit.cpp +++ b/llvm/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. |