summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
diff options
context:
space:
mode:
authorSanjoy Das <sanjoy@playingwithpointers.com>2017-05-21 01:47:50 +0000
committerSanjoy Das <sanjoy@playingwithpointers.com>2017-05-21 01:47:50 +0000
commit52071683836a749cb827a4aa8c2969ec9cade1c9 (patch)
tree6cd0a130713f688bc9b2789605f3ce903bfa02ae /llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
parent9fbfeefadfad06ee55a1e4012a6a3fb3893936d2 (diff)
downloadbcm5719-llvm-52071683836a749cb827a4aa8c2969ec9cade1c9.tar.gz
bcm5719-llvm-52071683836a749cb827a4aa8c2969ec9cade1c9.zip
[SCEV] Clarify behavior around max backedge taken count
This change makes the split between the "exact" backedge taken count and the "maximum" backedge taken count a bit more obvious. Both of these are upper bounds on the number of times the loop header executes (since SCEV does not account for most kinds of abnormal control flow), but the latter is guaranteed to be a constant. There were a few places where the max backedge taken count *was* a non-constant; I've changed those to compute constants instead. At this point, I'm not sure if the constant max backedge count can be computed by calling `getUnsignedRange(Exact).getUnsignedMax()` without losing precision. If it can, we can simplify even further by making `getMaxBackedgeTakenCount` a thin wrapper around `getBackedgeTakenCount` and `getUnsignedRange`. llvm-svn: 303497
Diffstat (limited to 'llvm/lib/Transforms/Utils/BasicBlockUtils.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud