aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopVersioning.cpp
diff options
context:
space:
mode:
authorFlorian Hahn <flo@fhahn.com>2021-01-12 19:55:17 +0000
committerFlorian Hahn <flo@fhahn.com>2021-01-12 20:02:34 +0000
commit6cd44b204c6c6f2e915270af6792f247c4c23abc (patch)
tree23ff946c5ba55a30123d22b74f62769214d0f2d6 /llvm/lib/Transforms/Utils/LoopVersioning.cpp
parente5f51fdd650c6d20c81fedb8e856e9858aa10991 (diff)
downloadllvm-6cd44b204c6c6f2e915270af6792f247c4c23abc.zip
llvm-6cd44b204c6c6f2e915270af6792f247c4c23abc.tar.gz
llvm-6cd44b204c6c6f2e915270af6792f247c4c23abc.tar.bz2
[FunctionAttrs] Derive willreturn for fns with readonly` & `mustprogress`.
Similar to D94125, derive `willreturn` for functions that are `readonly` and `mustprogress` in FunctionAttrs. To quote the reasoning from D94125: Since D86233 we have `mustprogress` which, in combination with `readonly`, implies `willreturn`. The idea is that every side-effect has to be modeled as a "write". Consequently, `readonly` means there is no side-effect, and `mustprogress` guarantees that we cannot "loop" forever without side-effect. Reviewed By: jdoerfert, nikic Differential Revision: https://reviews.llvm.org/D94502
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopVersioning.cpp')
0 files changed, 0 insertions, 0 deletions