[llvm] [IR] Add writerange attribute conveying a pointer argument's write range in a function (PR #227191)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 28 22:53:37 PDT 2026
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff origin/main HEAD --extensions h,cpp -- llvm/include/llvm/AsmParser/LLParser.h llvm/include/llvm/Bitcode/LLVMBitCodes.h llvm/include/llvm/IR/Attributes.h llvm/lib/Analysis/BasicAliasAnalysis.cpp llvm/lib/AsmParser/LLParser.cpp llvm/lib/Bitcode/Reader/BitcodeReader.cpp llvm/lib/Bitcode/Writer/BitcodeWriter.cpp llvm/lib/IR/Attributes.cpp llvm/lib/IR/Verifier.cpp llvm/lib/Transforms/IPO/FunctionAttrs.cpp llvm/lib/Transforms/Utils/CodeExtractor.cpp --diff_from_common_commit
``````````
:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/llvm/lib/Analysis/BasicAliasAnalysis.cpp b/llvm/lib/Analysis/BasicAliasAnalysis.cpp
index 91a419c23..465b5542d 100644
--- a/llvm/lib/Analysis/BasicAliasAnalysis.cpp
+++ b/llvm/lib/Analysis/BasicAliasAnalysis.cpp
@@ -942,11 +942,10 @@ AliasResult BasicAAResult::alias(const MemoryLocation &LocA,
return aliasCheck(LocA.Ptr, LocA.Size, LocB.Ptr, LocB.Size, AAQI, CtxI);
}
-static bool ArgWriteRangeDisjointFromLoc(const CallBase *Call,
- unsigned ArgIdx,
- const Value *Arg,
- const MemoryLocation &Loc,
- const DataLayout &DL) {
+static bool ArgWriteRangeDisjointFromLoc(const CallBase *Call, unsigned ArgIdx,
+ const Value *Arg,
+ const MemoryLocation &Loc,
+ const DataLayout &DL) {
if (!Call->paramHasAttr(ArgIdx, Attribute::WriteRange))
return false;
if (!Loc.Size.hasValue() || !Loc.Size.isPrecise() ||
@@ -1063,7 +1062,7 @@ ModRefInfo BasicAAResult::getModRefInfo(const CallBase *Call,
? MemoryLocation::getForArgument(Call, ArgIdx, TLI)
: MemoryLocation::getBeforeOrAfter(Arg);
AliasResult ArgAlias = AAQI.AAR.alias(ArgLoc, Loc, AAQI, Call);
-
+
if (ArgAlias != AliasResult::NoAlias) {
ModRefInfo PerArgMR = ArgMR & AAQI.AAR.getArgModRefInfo(Call, ArgIdx);
diff --git a/llvm/lib/Transforms/IPO/FunctionAttrs.cpp b/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
index 33b4ec901..a53329666 100644
--- a/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
+++ b/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
@@ -1342,7 +1342,7 @@ static void addArgumentAttrs(const SCCNodeSet &SCCNodes,
}
if (!A.onlyReadsMemory()) {
- if(inferWriteRange(A, *F))
+ if (inferWriteRange(A, *F))
Changed.insert(F);
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/227191
More information about the llvm-commits
mailing list