summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2007-04-09 21:57:03 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2007-04-09 21:57:03 +0000
commitda964a285239b1e0e03d1647be848e445793e188 (patch)
tree722e9531bd43903f6c2a3ad6300758da06aa3f7a /llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
parent8eb8eeada941a5df6dd8be02be11a0bb0d798b87 (diff)
downloadbcm5719-llvm-da964a285239b1e0e03d1647be848e445793e188.tar.gz
bcm5719-llvm-da964a285239b1e0e03d1647be848e445793e188.zip
Use integer log for metric calculation
llvm-svn: 35834
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
index cd61d111d22..e1a8c296b66 100644
--- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
@@ -1604,7 +1604,7 @@ bool SelectionDAGLowering::handleBTSplitSwitchCase(CaseRec& CR,
assert((RBegin-LEnd>=1) && "Invalid case distance");
double LDensity = (double)LSize / (double)((LEnd - First) + 1ULL);
double RDensity = (double)RSize / (double)((Last - RBegin) + 1ULL);
- double Metric = log(double(RBegin-LEnd))*(LDensity+RDensity);
+ double Metric = Log2_64(RBegin-LEnd)*(LDensity+RDensity);
// Should always split in some non-trivial place
DOUT <<"=>Step\n"
<< "LEnd: " << LEnd << ", RBegin: " << RBegin << "\n"
@@ -1620,7 +1620,7 @@ bool SelectionDAGLowering::handleBTSplitSwitchCase(CaseRec& CR,
RSize -= J->size();
}
// If our case is dense we *really* should handle it earlier!
- assert((FMetric != 0) && "Should handle dense range earlier!");
+ assert((FMetric > 0) && "Should handle dense range earlier!");
CaseRange LHSR(CR.Range.first, Pivot);
CaseRange RHSR(Pivot, CR.Range.second);
OpenPOWER on IntegriCloud