diff options
author | DonĂ¡t Nagy <donat.nagy@ericsson.com> | 2025-02-12 11:56:02 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-12 11:56:02 +0100 |
commit | edbc1fb228acd7746d91cd72d476c063704504b8 (patch) | |
tree | 81dda08bdff20b71b77857a1f8830411373b3754 /llvm/lib/CodeGen/MachineModuleSlotTracker.cpp | |
parent | d51750dba1c8fff8ea774a259f1263093c2ac434 (diff) | |
download | llvm-edbc1fb228acd7746d91cd72d476c063704504b8.zip llvm-edbc1fb228acd7746d91cd72d476c063704504b8.tar.gz llvm-edbc1fb228acd7746d91cd72d476c063704504b8.tar.bz2 |
[analyzer] Add option assume-at-least-one-iteration (#125494)
This commit adds the new analyzer option
`assume-at-least-one-iteration`, which is `false` by default, but can be
set to `true` to ensure that the analyzer always assumes at least one
iteration in loops.
In some situations this "loop is skipped" execution path is an important
corner case that may evade the notice of the developer and hide
significant bugs -- however, there are also many situations where it's
guaranteed that at least one iteration will happen (e.g. some data
structure is always nonempty), but the analyzer cannot realize this and
will produce false positives when it assumes that the loop is skipped.
This commit refactors some logic around the implementation of the new
feature, but the only functional change is introducing the new analyzer
option. If the new option is left in its default state (false), then the
analysis is functionally equivalent to an analysis done with a version
before this commit.
Diffstat (limited to 'llvm/lib/CodeGen/MachineModuleSlotTracker.cpp')
0 files changed, 0 insertions, 0 deletions