diff options
author | Florian Hahn <flo@fhahn.com> | 2023-11-15 21:58:00 +0000 |
---|---|---|
committer | Florian Hahn <flo@fhahn.com> | 2023-11-15 21:58:57 +0000 |
commit | 1dbcaf277714331bfc60dc6ead31b0e3a300de24 (patch) | |
tree | e2e42e9fc8a763f78cb4de4143cec25a3c35e463 /clang/lib/Format/QualifierAlignmentFixer.cpp | |
parent | a3fe9221ab1541a88e784507433cfe7fd13688fd (diff) | |
download | llvm-1dbcaf277714331bfc60dc6ead31b0e3a300de24.zip llvm-1dbcaf277714331bfc60dc6ead31b0e3a300de24.tar.gz llvm-1dbcaf277714331bfc60dc6ead31b0e3a300de24.tar.bz2 |
[LAA] Check if dependencies access loop-varying underlying objects.
This patch adds a new dependence kind UnsafeIndirect, for cases where at
least one of the memory access instructions may access a loop varying object,
e.g. the address of underlying object is loaded inside the loop, like A[B[i]].
We cannot determine direction or distance in those cases, and also are unable
to generate any runtime checks.
This fixes a miscompile, if we attempt to generate runtime checks for
unknown dependencies.
Note that in most cases we do not attempt to generate runtime checks for
unknown dependences, except if FoundNonConstantDistanceDependence is
true.
Fixes https://github.com/llvm/llvm-project/issues/69744.
Diffstat (limited to 'clang/lib/Format/QualifierAlignmentFixer.cpp')
0 files changed, 0 insertions, 0 deletions