-
Notifications
You must be signed in to change notification settings - Fork 15.7k
Revert "[InstCombine] Support DemandElts in SimplifyDemandedFPClass" #174242
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 Author: Kewen Meng (Kewen12) ChangesReverts llvm/llvm-project#174176 Revert to unblock bots. https://lab.llvm.org/buildbot/#/builders/123/builds/32907 Full diff: https://github.com/llvm/llvm-project/pull/174242.diff 2 Files Affected:
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineInternal.h b/llvm/lib/Transforms/InstCombine/InstCombineInternal.h
index 4f4023ce8616c..9bdd8cb71f7f3 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineInternal.h
+++ b/llvm/lib/Transforms/InstCombine/InstCombineInternal.h
@@ -211,15 +211,6 @@ class LLVM_LIBRARY_VISIBILITY InstCombinerImpl final
Depth);
}
- KnownFPClass computeKnownFPClass(Value *Val, const APInt &DemandedElts,
- FastMathFlags FMF,
- FPClassTest Interested = fcAllFlags,
- const Instruction *CtxI = nullptr,
- unsigned Depth = 0) const {
- return llvm::computeKnownFPClass(
- Val, DemandedElts, FMF, Interested,
- getSimplifyQuery().getWithInstruction(CtxI), Depth);
- }
KnownFPClass computeKnownFPClass(Value *Val,
FPClassTest Interested = fcAllFlags,
const Instruction *CtxI = nullptr,
@@ -228,14 +219,6 @@ class LLVM_LIBRARY_VISIBILITY InstCombinerImpl final
Val, Interested, getSimplifyQuery().getWithInstruction(CtxI), Depth);
}
- KnownFPClass computeKnownFPClass(Value *Val, const APInt &DemandedElts,
- FPClassTest Interested = fcAllFlags,
- const Instruction *CtxI = nullptr,
- unsigned Depth = 0) const {
- return llvm::computeKnownFPClass(
- Val, DemandedElts, Interested,
- getSimplifyQuery().getWithInstruction(CtxI), Depth);
- }
/// Check if fmul \p MulVal, +0.0 will yield +0.0 (or signed zero is
/// ignorable).
bool fmulByZeroIsZero(Value *MulVal, FastMathFlags FMF,
@@ -631,15 +614,7 @@ class LLVM_LIBRARY_VISIBILITY InstCombinerImpl final
Value *SimplifyDemandedUseFPClass(Value *V, FPClassTest DemandedMask,
KnownFPClass &Known, Instruction *CxtI,
unsigned Depth = 0);
- Value *SimplifyDemandedUseFPClass(Value *V, const APInt &DemandedElts,
- FPClassTest DemandedMask,
- KnownFPClass &Known, Instruction *CxtI,
- unsigned Depth = 0);
- bool SimplifyDemandedFPClass(Instruction *I, unsigned Op,
- FPClassTest DemandedMask, KnownFPClass &Known,
- unsigned Depth = 0);
bool SimplifyDemandedFPClass(Instruction *I, unsigned Op,
- const APInt &DemandedElts,
FPClassTest DemandedMask, KnownFPClass &Known,
unsigned Depth = 0);
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp b/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
index a9c759cbdbcba..3ad1caa6baa63 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
@@ -2033,23 +2033,12 @@ Value *InstCombinerImpl::SimplifyDemandedUseFPClass(Value *V,
KnownFPClass &Known,
Instruction *CxtI,
unsigned Depth) {
- auto *FVTy = dyn_cast<FixedVectorType>(V->getType());
- APInt DemandedElts =
- FVTy ? APInt::getAllOnes(FVTy->getNumElements()) : APInt(1, 1);
-
- return SimplifyDemandedUseFPClass(V, DemandedElts, DemandedMask, Known, CxtI,
- Depth);
-}
-
-Value *InstCombinerImpl::SimplifyDemandedUseFPClass(
- Value *V, const APInt &DemandedElts, FPClassTest DemandedMask,
- KnownFPClass &Known, Instruction *CxtI, unsigned Depth) {
assert(Depth <= MaxAnalysisRecursionDepth && "Limit Search Depth");
Type *VTy = V->getType();
assert(Known == KnownFPClass() && "expected uninitialized state");
- if (DemandedMask == fcNone || !DemandedElts)
+ if (DemandedMask == fcNone)
return isa<UndefValue>(V) ? nullptr : PoisonValue::get(VTy);
if (Depth == MaxAnalysisRecursionDepth)
@@ -2058,7 +2047,7 @@ Value *InstCombinerImpl::SimplifyDemandedUseFPClass(
Instruction *I = dyn_cast<Instruction>(V);
if (!I) {
// Handle constants and arguments
- Known = computeKnownFPClass(V, DemandedElts, fcAllFlags, CxtI, Depth + 1);
+ Known = computeKnownFPClass(V, fcAllFlags, CxtI, Depth + 1);
FPClassTest ValidResults = DemandedMask & Known.KnownFPClasses;
if (ValidResults == fcNone)
@@ -2091,8 +2080,8 @@ Value *InstCombinerImpl::SimplifyDemandedUseFPClass(
switch (I->getOpcode()) {
case Instruction::FNeg: {
- if (SimplifyDemandedFPClass(I, 0, DemandedElts, llvm::fneg(DemandedMask),
- Known, Depth + 1))
+ if (SimplifyDemandedFPClass(I, 0, llvm::fneg(DemandedMask), Known,
+ Depth + 1))
return I;
Known.fneg();
break;
@@ -2101,22 +2090,19 @@ Value *InstCombinerImpl::SimplifyDemandedUseFPClass(
CallInst *CI = cast<CallInst>(I);
switch (CI->getIntrinsicID()) {
case Intrinsic::fabs:
- if (SimplifyDemandedFPClass(I, 0, DemandedElts,
- llvm::inverse_fabs(DemandedMask), Known,
+ if (SimplifyDemandedFPClass(I, 0, llvm::inverse_fabs(DemandedMask), Known,
Depth + 1))
return I;
Known.fabs();
break;
case Intrinsic::arithmetic_fence:
- if (SimplifyDemandedFPClass(I, 0, DemandedElts, DemandedMask, Known,
- Depth + 1))
+ if (SimplifyDemandedFPClass(I, 0, DemandedMask, Known, Depth + 1))
return I;
break;
case Intrinsic::copysign: {
// Flip on more potentially demanded classes
const FPClassTest DemandedMaskAnySign = llvm::unknown_sign(DemandedMask);
- if (SimplifyDemandedFPClass(I, 0, DemandedElts, DemandedMaskAnySign,
- Known, Depth + 1))
+ if (SimplifyDemandedFPClass(I, 0, DemandedMaskAnySign, Known, Depth + 1))
return I;
if ((DemandedMask & fcNegative) == DemandedMask) {
@@ -2131,8 +2117,8 @@ Value *InstCombinerImpl::SimplifyDemandedUseFPClass(
return I;
}
- KnownFPClass KnownSign = computeKnownFPClass(
- I->getOperand(1), DemandedElts, fcAllFlags, CxtI, Depth + 1);
+ KnownFPClass KnownSign =
+ computeKnownFPClass(I->getOperand(1), fcAllFlags, CxtI, Depth + 1);
Known.copysign(KnownSign);
break;
}
@@ -2184,8 +2170,7 @@ Value *InstCombinerImpl::SimplifyDemandedUseFPClass(
// TODO: This could really make use of KnownFPClass of specific value
// range, (i.e., close enough to 1)
- if (SimplifyDemandedFPClass(I, 0, DemandedElts, SrcDemandedMask, KnownSrc,
- Depth + 1))
+ if (SimplifyDemandedFPClass(I, 0, SrcDemandedMask, KnownSrc, Depth + 1))
return I;
/// Propagate nnan-ness to simplify edge case checks.
@@ -2268,8 +2253,7 @@ Value *InstCombinerImpl::SimplifyDemandedUseFPClass(
KnownFPClass KnownSrc;
// Simplify upstream operations before trying to simplify this call.
- if (SimplifyDemandedFPClass(I, 0, DemandedElts, SrcDemandedMask,
- KnownSrc, Depth + 1))
+ if (SimplifyDemandedFPClass(I, 0, SrcDemandedMask, KnownSrc, Depth + 1))
return I;
// Perform the canonicalization to see if this folded to a constant.
@@ -2295,8 +2279,7 @@ Value *InstCombinerImpl::SimplifyDemandedUseFPClass(
[[fallthrough]];
}
default:
- Known =
- computeKnownFPClass(I, DemandedElts, DemandedMask, CxtI, Depth + 1);
+ Known = computeKnownFPClass(I, DemandedMask, CxtI, Depth + 1);
break;
}
@@ -2304,10 +2287,8 @@ Value *InstCombinerImpl::SimplifyDemandedUseFPClass(
}
case Instruction::Select: {
KnownFPClass KnownLHS, KnownRHS;
- if (SimplifyDemandedFPClass(I, 2, DemandedElts, DemandedMask, KnownRHS,
- Depth + 1) ||
- SimplifyDemandedFPClass(I, 1, DemandedElts, DemandedMask, KnownLHS,
- Depth + 1))
+ if (SimplifyDemandedFPClass(I, 2, DemandedMask, KnownRHS, Depth + 1) ||
+ SimplifyDemandedFPClass(I, 1, DemandedMask, KnownLHS, Depth + 1))
return I;
if (KnownLHS.isKnownNever(DemandedMask))
@@ -2321,29 +2302,24 @@ Value *InstCombinerImpl::SimplifyDemandedUseFPClass(
}
case Instruction::ExtractElement: {
// TODO: Handle demanded element mask
- if (SimplifyDemandedFPClass(I, 0, DemandedElts, DemandedMask, Known,
- Depth + 1))
+ if (SimplifyDemandedFPClass(I, 0, DemandedMask, Known, Depth + 1))
return I;
break;
}
case Instruction::InsertElement: {
KnownFPClass KnownInserted, KnownVec;
-
- if (SimplifyDemandedFPClass(I, 1, DemandedElts, DemandedMask, KnownInserted,
- Depth + 1) ||
- SimplifyDemandedFPClass(I, 0, DemandedElts, DemandedMask, KnownVec,
- Depth + 1))
+ if (SimplifyDemandedFPClass(I, 1, DemandedMask, KnownInserted, Depth + 1) ||
+ SimplifyDemandedFPClass(I, 0, DemandedMask, KnownVec, Depth + 1))
return I;
+
// TODO: Use demanded elements logic from computeKnownFPClass
Known = KnownVec | KnownInserted;
break;
}
case Instruction::ShuffleVector: {
KnownFPClass KnownLHS, KnownRHS;
- if (SimplifyDemandedFPClass(I, 1, DemandedElts, DemandedMask, KnownRHS,
- Depth + 1) ||
- SimplifyDemandedFPClass(I, 0, DemandedElts, DemandedMask, KnownLHS,
- Depth + 1))
+ if (SimplifyDemandedFPClass(I, 1, DemandedMask, KnownRHS, Depth + 1) ||
+ SimplifyDemandedFPClass(I, 0, DemandedMask, KnownLHS, Depth + 1))
return I;
// TODO: This is overly conservative and should consider demanded elements,
@@ -2352,7 +2328,7 @@ Value *InstCombinerImpl::SimplifyDemandedUseFPClass(
break;
}
default:
- Known = computeKnownFPClass(I, DemandedElts, DemandedMask, CxtI, Depth + 1);
+ Known = computeKnownFPClass(I, DemandedMask, CxtI, Depth + 1);
break;
}
@@ -2360,13 +2336,12 @@ Value *InstCombinerImpl::SimplifyDemandedUseFPClass(
}
bool InstCombinerImpl::SimplifyDemandedFPClass(Instruction *I, unsigned OpNo,
- const APInt &DemandedElts,
FPClassTest DemandedMask,
KnownFPClass &Known,
unsigned Depth) {
Use &U = I->getOperandUse(OpNo);
- Value *NewVal = SimplifyDemandedUseFPClass(U.get(), DemandedElts,
- DemandedMask, Known, I, Depth);
+ Value *NewVal =
+ SimplifyDemandedUseFPClass(U.get(), DemandedMask, Known, I, Depth);
if (!NewVal)
return false;
if (Instruction *OpInst = dyn_cast<Instruction>(U))
|
|
LLVM Buildbot has detected a new failure on builder Full details are available at: https://lab.llvm.org/buildbot/#/builders/162/builds/37893 Here is the relevant piece of the build log for the reference |
Reverts #174176
Revert to unblock bots. https://lab.llvm.org/buildbot/#/builders/123/builds/32907