[llvm-commits] [llvm] r90037 - /llvm/trunk/lib/Analysis/MemoryDependenceAnalysis.cpp

Chris Lattner sabre at nondot.org
Sat Nov 28 06:54:10 PST 2009


Author: lattner
Date: Sat Nov 28 08:54:10 2009
New Revision: 90037

URL: http://llvm.org/viewvc/llvm-project?rev=90037&view=rev
Log:
enable code to handle un-phi-translatable cases more aggressively:
if we don't have an address expression available in a predecessor,
then model this as the value being clobbered at the end of the pred
block instead of being modeled as a complete phi translation failure.
This is important for PRE of loads because we want to see that the
load is available in all but this predecessor, and complete phi
translation failure results in not getting any information about
predecessors.

This doesn't do anything until I renable code insertion since PRE
now sees that it is available in all but one predecessors, but can't
insert the addressing in the predecessor that is missing it to 
eliminate the redundancy.

Modified:
    llvm/trunk/lib/Analysis/MemoryDependenceAnalysis.cpp

Modified: llvm/trunk/lib/Analysis/MemoryDependenceAnalysis.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/MemoryDependenceAnalysis.cpp?rev=90037&r1=90036&r2=90037&view=diff

==============================================================================
--- llvm/trunk/lib/Analysis/MemoryDependenceAnalysis.cpp (original)
+++ llvm/trunk/lib/Analysis/MemoryDependenceAnalysis.cpp Sat Nov 28 08:54:10 2009
@@ -1132,12 +1132,9 @@
       // that predecessor.  We can still do PRE of the load, which would insert
       // a computation of the pointer in this predecessor.
       if (PredPtr == 0) {
-        goto PredTranslationFailure;
-#if 0 // TODO.
         Result.push_back(NonLocalDepEntry(Pred,
                               MemDepResult::getClobber(Pred->getTerminator())));
         continue;
-#endif
       }
 
       // FIXME: it is entirely possible that PHI translating will end up with





More information about the llvm-commits mailing list