[llvm] [SCEV] Use power of two facts involving vscale when inferring wrap flags (PR #101380)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 31 11:11:30 PDT 2024
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 35a2e6d24bcb94720ec7b3aa00e58a1b7b837fbc bf7b6c6cb5c7eae5d051ca7006c0ab63a0bc289f --extensions h,cpp -- llvm/include/llvm/Analysis/ScalarEvolution.h llvm/lib/Analysis/ScalarEvolution.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp
index 159aa6e93a..1948de2594 100644
--- a/llvm/lib/Analysis/ScalarEvolution.cpp
+++ b/llvm/lib/Analysis/ScalarEvolution.cpp
@@ -9161,7 +9161,7 @@ ScalarEvolution::ExitLimit ScalarEvolution::computeExitLimitFromICmp(
isKnownToBeAPowerOfTwo(AR->getStepRecurrence(*this))) {
auto Flags = AR->getNoWrapFlags();
Flags = setFlags(Flags, SCEV::FlagNW);
- SmallVector<const SCEV*> Operands{AR->operands()};
+ SmallVector<const SCEV *> Operands{AR->operands()};
Flags = StrengthenNoWrapFlags(this, scAddRecExpr, Operands, Flags);
setNoWrapFlags(const_cast<SCEVAddRecExpr *>(AR), Flags);
}
@@ -10848,7 +10848,9 @@ bool ScalarEvolution::isKnownToBeAPowerOfTwo(const SCEV *S, bool OrZero) {
if (auto *C = dyn_cast<SCEVConstant>(S))
return C->getAPInt().isPowerOf2();
// The vscale_range indicates vscale is a power-of-two.
- return S->getSCEVType() == scVScale && F.hasFnAttribute(Attribute::VScaleRange);;
+ return S->getSCEVType() == scVScale &&
+ F.hasFnAttribute(Attribute::VScaleRange);
+ ;
};
if (nonRecursive(S))
@@ -10858,10 +10860,9 @@ bool ScalarEvolution::isKnownToBeAPowerOfTwo(const SCEV *S, bool OrZero) {
if (!Mul || Mul->getNumOperands() != 2)
return false;
return nonRecursive(Mul->getOperand(0)) && nonRecursive(Mul->getOperand(1)) &&
- (OrZero || isKnownNonZero(S));
+ (OrZero || isKnownNonZero(S));
}
-
std::pair<const SCEV *, const SCEV *>
ScalarEvolution::SplitIntoInitAndPostInc(const Loop *L, const SCEV *S) {
// Compute SCEV on entry of loop L.
``````````
</details>
https://github.com/llvm/llvm-project/pull/101380
More information about the llvm-commits
mailing list