[all-commits] [llvm/llvm-project] abec9f: [AMDGPU] Correctly merge noalias scopes during low...
Sirish Pande via All-commits
all-commits at lists.llvm.org
Mon Apr 28 12:02:41 PDT 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: abec9ff47da4fd8b614d0338203b2e3663c36aaf
https://github.com/llvm/llvm-project/commit/abec9ff47da4fd8b614d0338203b2e3663c36aaf
Author: Sirish Pande <sirpande at amd.com>
Date: 2025-04-28 (Mon, 28 Apr 2025)
Changed paths:
M llvm/include/llvm/Analysis/ScopedNoAliasAA.h
M llvm/lib/Analysis/ScopedNoAliasAA.cpp
M llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
M llvm/test/CodeGen/AMDGPU/lower-kernel-and-module-lds.ll
M llvm/test/CodeGen/AMDGPU/lower-lds-struct-aa-merge.ll
A llvm/test/CodeGen/AMDGPU/lower-lds-with-alias-scope.ll
A llvm/test/CodeGen/AMDGPU/lower-lds-with-noalias.ll
M llvm/test/CodeGen/AMDGPU/lower-module-lds-single-var-unambiguous.ll
Log Message:
-----------
[AMDGPU] Correctly merge noalias scopes during lowering of LDS data. (#131664)
Currently, if there is already noalias metadata present on loads and
stores, lower module lds pass is generating a more conservative aliasing
set. This results in inhibiting scheduling intrinsics that would have
otherwise generated a better pipelined instruction.
The fix is not to always intersect already existing noalias metadata
with noalias created for lowering of LDS. But to intersect only if
noalias scopes are from the same domain, otherwise concatenate exising
noalias sets with LDS noalias.
There a few patches that have come for scopedAA in the past. Following
three should be enough background information.
https://reviews.llvm.org/D91576
https://reviews.llvm.org/D108315
https://reviews.llvm.org/D110049
Essentially, after a pass that might change aliasing info, one should
check if that pass results in change number of MayAlias or ModRef using
the following:
`opt -S -aa-pipeline=basic-aa,scoped-noalias-aa -passes=aa-eval
-evaluate-aa-metadata -print-all-alias-modref-info -disable-output`
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list