diff options
author | Florian Hahn <flo@fhahn.com> | 2021-01-12 19:55:17 +0000 |
---|---|---|
committer | Florian Hahn <flo@fhahn.com> | 2021-01-12 20:02:34 +0000 |
commit | 6cd44b204c6c6f2e915270af6792f247c4c23abc (patch) | |
tree | 23ff946c5ba55a30123d22b74f62769214d0f2d6 /llvm/lib/Transforms/Utils/LoopVersioning.cpp | |
parent | e5f51fdd650c6d20c81fedb8e856e9858aa10991 (diff) | |
download | llvm-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