[clang] [llvm] [AMDGPU] Infer amdgpu-no-flat-scratch-init attribute in AMDGPUAttributor (PR #94647)
Shilei Tian via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 31 07:34:19 PDT 2024
================
@@ -683,6 +698,65 @@ struct AAAMDAttributesFunction : public AAAMDAttributes {
return !A.checkForAllCallLikeInstructions(DoesNotRetrieve, *this,
UsedAssumedInformation);
}
+
+ // Returns true if FlatScratchInit is needed, i.e., no-flat-scratch-init is
+ // not to be set.
+ bool needFlatScratchInit(Attributor &A) {
+ assert(isAssumed(FLAT_SCRATCH_INIT)); // only called if the bit is still set
+
+ // Check all AddrSpaceCast instructions. FlatScratchInit is needed if
+ // there is a cast from PRIVATE_ADDRESS.
+ auto AddrSpaceCastNotFromPrivate = [&](Instruction &I) {
+ return static_cast<AddrSpaceCastInst &>(I).getSrcAddressSpace() !=
----------------
shiltian wrote:
`cast<...>` might be more proper here
https://github.com/llvm/llvm-project/pull/94647
More information about the cfe-commits
mailing list