This patch adds the plumbing for computing exit counts for loops with floating point IVs. The logic is generally pretty simple (deliberately). The basic reasoning is that if we have an IV with integer values represented as floats, then we can compute the exit counts "as-if" they were ints.
The motivation here is to eventually subsume the logic inside IndVarSimplify::handleFloatingPointIV, and restructure that one to simply perform the transform. By doing so, we handle a much broader class of floating point IV loops than we do today.
To be fair, the actual motivation behind all of this is to break a toy microbenchmark. This is not something seen in real code.