Fix floating-point divide by zero, in a case where the value was not going to be...
authorRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 24 Aug 2012 00:31:45 +0000 (00:31 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 24 Aug 2012 00:31:45 +0000 (00:31 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162518 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/ProfileEstimatorPass.cpp

index 63468f842612db784e8b037c38f2e32383940147..12b59e0a6fd5d64004bc27256922066d923fd709 100644 (file)
@@ -286,7 +286,7 @@ void ProfileEstimatorPass::recurseBasicBlock(BasicBlock *BB) {
     }
   }
 
-  double fraction = floor(BBWeight/Edges.size());
+  double fraction = Edges.size() ? floor(BBWeight/Edges.size()) : 0.0;
   // Finally we know what flow is still not leaving the block, distribute this
   // flow onto the empty edges.
   for (SmallVector<Edge, 8>::iterator ei = Edges.begin(), ee = Edges.end();