diff options
author | Drew Kersnar <dkersnar@nvidia.com> | 2025-08-08 12:05:29 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-08 12:05:29 -0500 |
commit | 90e8c8e7186616241549e7bc62d95b51467a674b (patch) | |
tree | 6cf0c144d9b9141f75125db932cbfd92b85354ab /clang/lib/AST/ByteCode/Compiler.cpp | |
parent | 51bc0c1d6bb9ab2c1c2acb3f37d00ed919202973 (diff) | |
download | llvm-90e8c8e7186616241549e7bc62d95b51467a674b.zip llvm-90e8c8e7186616241549e7bc62d95b51467a674b.tar.gz llvm-90e8c8e7186616241549e7bc62d95b51467a674b.tar.bz2 |
[InferAlignment] Propagate alignment between loads/stores of the same base pointer (#145733)
We can derive and upgrade alignment for loads/stores using other
well-aligned loads/stores. This optimization does a single forward pass through
each basic block and uses loads/stores (the alignment and the offset) to
derive the best possible alignment for a base pointer, caching the
result. If it encounters another load/store based on that pointer, it
tries to upgrade the alignment. The optimization must be a forward pass within a basic
block because control flow and exception throwing can impact alignment guarantees.
---------
Co-authored-by: Nikita Popov <github@npopov.com>
Diffstat (limited to 'clang/lib/AST/ByteCode/Compiler.cpp')
0 files changed, 0 insertions, 0 deletions