Handle functions with multiple exit blocks properly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37539 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Owen Anderson 2007-06-11 16:25:17 +00:00
parent 2099ff065d
commit 0e71466405

View File

@ -526,6 +526,9 @@ bool GVNPRE::runOnFunction(Function &F) {
df_begin(PDT.getRootNode()), E = df_end(PDT.getRootNode());
PDI != E; ++PDI) {
BasicBlock* BB = PDI->getBlock();
if (BB == 0)
continue;
DOUT << "Block: " << BB->getName() << "\n";
DOUT << "TMP_GEN: ";
dump(generatedTemporaries[BB]);
@ -635,6 +638,9 @@ bool GVNPRE::runOnFunction(Function &F) {
E = df_end(DT.getRootNode()); DI != E; ++DI) {
BasicBlock* BB = DI->getBlock();
if (BB == 0)
continue;
std::set<Value*, ExprLT>& new_set = new_sets[BB];
std::set<Value*, ExprLT>& availOut = availableOut[BB];
std::set<Value*, ExprLT>& anticIn = anticipatedIn[BB];