-
Notifications
You must be signed in to change notification settings - Fork 15.5k
[InstCombine][CmpInstAnalysis] Use consistent spelling and function names. NFC. #171645
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@llvm/pr-subscribers-llvm-transforms @llvm/pr-subscribers-llvm-analysis Author: Tirthankar Mazumder (wermos) ChangesBoth However, in the implementation, it's written as
and
I opted to convert all instances of The other change in this PR is the renaming of the wrapper around Full diff: https://github.com/llvm/llvm-project/pull/171645.diff 3 Files Affected:
diff --git a/llvm/lib/Analysis/CmpInstAnalysis.cpp b/llvm/lib/Analysis/CmpInstAnalysis.cpp
index a1a79e5685f80..a6d0d3ff4fcd4 100644
--- a/llvm/lib/Analysis/CmpInstAnalysis.cpp
+++ b/llvm/lib/Analysis/CmpInstAnalysis.cpp
@@ -75,7 +75,7 @@ Constant *llvm::getPredForFCmpCode(unsigned Code, Type *OpTy,
std::optional<DecomposedBitTest>
llvm::decomposeBitTestICmp(Value *LHS, Value *RHS, CmpInst::Predicate Pred,
- bool LookThruTrunc, bool AllowNonZeroC,
+ bool LookThroughTrunc, bool AllowNonZeroC,
bool DecomposeAnd) {
using namespace PatternMatch;
@@ -173,7 +173,7 @@ llvm::decomposeBitTestICmp(Value *LHS, Value *RHS, CmpInst::Predicate Pred,
Result.Pred = ICmpInst::getInversePredicate(Result.Pred);
Value *X;
- if (LookThruTrunc && match(LHS, m_Trunc(m_Value(X)))) {
+ if (LookThroughTrunc && match(LHS, m_Trunc(m_Value(X)))) {
Result.X = X;
Result.Mask = Result.Mask.zext(X->getType()->getScalarSizeInBits());
Result.C = Result.C.zext(X->getType()->getScalarSizeInBits());
@@ -185,7 +185,7 @@ llvm::decomposeBitTestICmp(Value *LHS, Value *RHS, CmpInst::Predicate Pred,
}
std::optional<DecomposedBitTest> llvm::decomposeBitTest(Value *Cond,
- bool LookThruTrunc,
+ bool LookThroughTrunc,
bool AllowNonZeroC,
bool DecomposeAnd) {
using namespace PatternMatch;
@@ -194,7 +194,7 @@ std::optional<DecomposedBitTest> llvm::decomposeBitTest(Value *Cond,
if (!ICmp->getOperand(0)->getType()->isIntOrIntVectorTy())
return std::nullopt;
return decomposeBitTestICmp(ICmp->getOperand(0), ICmp->getOperand(1),
- ICmp->getPredicate(), LookThruTrunc,
+ ICmp->getPredicate(), LookThroughTrunc,
AllowNonZeroC, DecomposeAnd);
}
Value *X;
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
index ba5568b00441b..64df974589055 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
@@ -186,8 +186,8 @@ static unsigned conjugateICmpMask(unsigned Mask) {
return NewMask;
}
-// Adapts the external decomposeBitTestICmp for local use.
-static bool decomposeBitTestICmp(Value *Cond, CmpInst::Predicate &Pred,
+// Adapts the external decomposeBitTest for local use.
+static bool decomposeBitTest(Value *Cond, CmpInst::Predicate &Pred,
Value *&X, Value *&Y, Value *&Z) {
auto Res = llvm::decomposeBitTest(Cond, /*LookThroughTrunc=*/true,
/*AllowNonZeroC=*/true);
@@ -220,7 +220,7 @@ getMaskedTypeForICmpPair(Value *&A, Value *&B, Value *&C, Value *&D, Value *&E,
// Check whether the icmp can be decomposed into a bit test.
Value *L1, *L11, *L12, *L2, *L21, *L22;
- if (decomposeBitTestICmp(LHS, PredL, L11, L12, L2)) {
+ if (decomposeBitTest(LHS, PredL, L11, L12, L2)) {
L21 = L22 = L1 = nullptr;
} else {
auto *LHSCMP = dyn_cast<ICmpInst>(LHS);
@@ -253,7 +253,7 @@ getMaskedTypeForICmpPair(Value *&A, Value *&B, Value *&C, Value *&D, Value *&E,
return std::nullopt;
Value *R11, *R12, *R2;
- if (decomposeBitTestICmp(RHS, PredR, R11, R12, R2)) {
+ if (decomposeBitTest(RHS, PredR, R11, R12, R2)) {
if (R11 == L11 || R11 == L12 || R11 == L21 || R11 == L22) {
A = R11;
D = R12;
@@ -3890,7 +3890,7 @@ static std::optional<DecomposedBitMaskMul> matchBitmaskMul(Value *V) {
// Decompose ((A & N) ? 0 : N * C) into BitMaskMul
if (match(Op, m_Select(m_Value(Cond), m_APInt(EqZero), m_APInt(NeZero)))) {
auto ICmpDecompose =
- decomposeBitTest(Cond, /*LookThruTrunc=*/true,
+ decomposeBitTest(Cond, /*LookThroughTrunc=*/true,
/*AllowNonZeroC=*/false, /*DecomposeBitMask=*/true);
if (!ICmpDecompose.has_value())
return std::nullopt;
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
index abf4381ebd794..1859dad4ec00b 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
@@ -6290,7 +6290,7 @@ Instruction *InstCombinerImpl::foldICmpWithTrunc(ICmpInst &ICmp) {
// This matches patterns corresponding to tests of the signbit as well as:
// (trunc X) pred C2 --> (X & Mask) == C
- if (auto Res = decomposeBitTestICmp(Op0, Op1, Pred, /*WithTrunc=*/true,
+ if (auto Res = decomposeBitTestICmp(Op0, Op1, Pred, /*LookThroughTrunc=*/true,
/*AllowNonZeroC=*/true)) {
Value *And = Builder.CreateAnd(Res->X, Res->Mask);
Constant *C = ConstantInt::get(Res->X->getType(), Res->C);
|
|
|
|
✅ With the latest revision this PR passed the C/C++ code formatter. |
|
I am not sure what the problem with my email is, I have a publicly viewable email on my GitHub profile. |
|
the problem with the mail is in the git commit the mail address is 63574588+wermos@users.noreply.github.com |
|
Alright, I'll work on changing the commit email. |
|
I've fixed the email issue. It should now show |
nikic
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Both
decomposeBitTestICmpanddecomposeBitTesthave a parameter calledlookThroughTrunc. This was spelled in full (i.e.lookThroughTrunc) in the header (see here and here).However, in the implementation, it's written as
llvm-project/llvm/lib/Analysis/CmpInstAnalysis.cpp
Line 78 in 54b4bd5
and
llvm-project/llvm/lib/Analysis/CmpInstAnalysis.cpp
Line 188 in 54b4bd5
I opted to convert all instances of
lookThruTruncintolookThroughTruncto reduce surprise while reading the code and for conformity.The other change in this PR is the renaming of the wrapper around
decomposeBitTest(). Even though it was a wrapper aroundCmpInstAnalysis.h'sdecomposeBitTest, the function was calleddecomposeBitTestICmp. This is quite confusing because such a function also exists inCmpInstAnalysis.h, but it is not the one actually being used inInstCombineAndOrXor.cpp.