hliao added inline comments.
================ Comment at: clang/lib/CodeGen/CGCall.cpp:2556-2563 + // Restrict qualified HIP pointers that were coerced to global pointers + // can be marked with the noalias attribute. + if (isCoercedHIPGlobalPointer(*this, getLangOpts(), ArgI, Ty) && + Arg->getType().isRestrictQualified()) { + auto AI = cast<llvm::Argument>(FnArgs[FirstIRArg]); + AI->addAttr(llvm::Attribute::NoAlias); + } ---------------- yaxunl wrote: > hliao wrote: > > I don't think we need to check pointer address and/or HIP specific. As the > > generic argument processing, if the original type has any qualifiers, the > > coerced type (if it has a single value as the original parameter) should > > have those qualifiers as well. Here, we not only miss `restrict` but also > > alignment, `nonnull`, and etc. It should be fixed as a generic case instead > > of a target- or language-specific one. > I agree we should migrate other argument properties for promoted pointer-type > kernel arg for HIP, and that should be possible since other than the address > space change, the type is the same. > > However, I am not sure if we can do that for coerced function arguments in > general. It may not even be pointer any more. If the coerced type is still a pointer but diffs on the element type, address space, or others. They should share the same qualifiers for pointers. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D79213/new/ https://reviews.llvm.org/D79213 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits