[llvm] [ArgPromotion] Infer parameter attributes on functions (PR #110245)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 27 05:52:41 PDT 2024
================
@@ -743,6 +743,10 @@ static bool findArgParts(Argument *Arg, const DataLayout &DL, AAResults &AAR,
// Okay, now we know that the argument is only used by load instructions, and
// it is safe to unconditionally perform all of them.
+ // We can infer `nocapture readonly` as the argument is only used by loads.
+ Arg->getParent()->addParamAttr(Arg->getArgNo(), Attribute::NoCapture);
+ Arg->getParent()->addParamAttr(Arg->getArgNo(), Attribute::ReadOnly);
----------------
nikic wrote:
We should not modify attributes in findArgParts like this, because it mixed analysis and transform. Note that we will fail to report the attribute change to the PM as implemented.
https://github.com/llvm/llvm-project/pull/110245
More information about the llvm-commits
mailing list