mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
lib/CodeGen/LiveIntervalAnalysis.cpp: [PR9590] Don't use std::pow(float,float) here.
We don't expect the real "powf()" on some hosts (and powf() would be available on other hosts). For consistency, std::pow(double,double) may be called instead. Or, precision issue might attack us, to see unstable regalloc and stack coloring. llvm-svn: 128629
This commit is contained in:
parent
40e705fb80
commit
e0a71fb3e0
@ -1715,7 +1715,9 @@ LiveIntervals::getSpillWeight(bool isDef, bool isUse, unsigned loopDepth) {
|
||||
// overflow a float. This expression behaves like 10^d for small d, but is
|
||||
// more tempered for large d. At d=200 we get 6.7e33 which leaves a bit of
|
||||
// headroom before overflow.
|
||||
float lc = std::pow(1 + (100.0f / (loopDepth+10)), (float)loopDepth);
|
||||
// By the way, powf() might be unavailable here. For consistency,
|
||||
// We may take pow(double,double).
|
||||
float lc = std::pow(1 + (100.0 / (loopDepth + 10)), (double)loopDepth);
|
||||
|
||||
return (isDef + isUse) * lc;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user