|
LLVM 22.0.0git
|
#include "llvm/Analysis/SimplifyQuery.h"
Public Member Functions | |
| SimplifyQuery (const DataLayout &DL, const Instruction *CXTI=nullptr) | |
| SimplifyQuery (const DataLayout &DL, const TargetLibraryInfo *TLI, const DominatorTree *DT=nullptr, AssumptionCache *AC=nullptr, const Instruction *CXTI=nullptr, bool UseInstrInfo=true, bool CanUseUndef=true, const DomConditionCache *DC=nullptr) | |
| SimplifyQuery (const DataLayout &DL, const DominatorTree *DT, AssumptionCache *AC=nullptr, const Instruction *CXTI=nullptr, bool UseInstrInfo=true, bool CanUseUndef=true) | |
| SimplifyQuery | getWithInstruction (const Instruction *I) const |
| SimplifyQuery | getWithoutUndef () const |
| LLVM_ABI bool | isUndefValue (Value *V) const |
If CanUseUndef is true, returns whether V is undef. | |
| SimplifyQuery | getWithoutDomCondCache () const |
| SimplifyQuery | getWithCondContext (const CondContext &CC) const |
| SimplifyQuery | getWithoutCondContext () const |
Public Attributes | |
| const DataLayout & | DL |
| const TargetLibraryInfo * | TLI = nullptr |
| const DominatorTree * | DT = nullptr |
| AssumptionCache * | AC = nullptr |
| const Instruction * | CxtI = nullptr |
| const DomConditionCache * | DC = nullptr |
| const CondContext * | CC = nullptr |
| const InstrInfoQuery | IIQ |
| bool | CanUseUndef = true |
| Controls whether simplifications are allowed to constrain the range of possible values for uses of undef. | |
Definition at line 71 of file SimplifyQuery.h.
|
inline |
Definition at line 90 of file SimplifyQuery.h.
Referenced by getWithCondContext(), getWithInstruction(), getWithoutCondContext(), getWithoutDomCondCache(), and getWithoutUndef().
|
inline |
Definition at line 93 of file SimplifyQuery.h.
|
inline |
Definition at line 101 of file SimplifyQuery.h.
|
inline |
Definition at line 129 of file SimplifyQuery.h.
References CC, and SimplifyQuery().
|
inline |
Definition at line 108 of file SimplifyQuery.h.
References I, and SimplifyQuery().
Referenced by llvm::GCNTTIImpl::canSimplifyLegacyMulToMul(), computeKnownBitsFromOperator(), computeKnownFPClass(), foldCtpop(), foldCttzCtlz(), foldFCmpFSubIntoFCmp(), foldFPtoI(), foldICmpAndXX(), foldSelectBinOpIdentity(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), simplifyAndOrWithOpReplaced(), simplifyInstructionWithOperands(), simplifyInstructionWithPHI(), simplifyLoopInst(), threadBinOpOverPHI(), threadCmpOverPHI(), and tryFactorization().
|
inline |
Definition at line 135 of file SimplifyQuery.h.
References SimplifyQuery().
Referenced by computeKnownBitsFromOperator(), computeKnownFPClass(), ComputeNumSignBitsImpl(), isKnownNonZeroFromOperator(), llvm::isKnownToBeAPowerOfTwo(), and isNonEqualPHIs().
|
inline |
Definition at line 123 of file SimplifyQuery.h.
References SimplifyQuery().
|
inline |
Definition at line 113 of file SimplifyQuery.h.
References SimplifyQuery().
Referenced by expandBinOp(), simplifyAndOrWithICmpEq(), llvm::simplifyBinaryIntrinsic(), simplifySelectWithEquivalence(), and llvm::simplifyWithOpReplaced().
If CanUseUndef is true, returns whether V is undef.
Otherwise always return false.
Definition at line 7620 of file InstructionSimplify.cpp.
References CanUseUndef, llvm::PatternMatch::m_Undef(), and llvm::PatternMatch::match().
Referenced by llvm::GCNTTIImpl::instCombineIntrinsic(), isPoisonShift(), simplifyAddInst(), simplifyAndInst(), llvm::simplifyBinaryIntrinsic(), simplifyDivRem(), simplifyExtractElementInst(), simplifyFCmpInst(), simplifyFPOp(), simplifyGEPInst(), simplifyICmpInst(), llvm::simplifyInsertElementInst(), simplifyInsertValueInst(), simplifyIntrinsic(), simplifyLdexp(), simplifyMulInst(), simplifyOrInst(), simplifyPHINode(), simplifyRightShift(), simplifySelectInst(), simplifyShlInst(), simplifyShuffleVectorInst(), simplifySubInst(), simplifyXorInst(), and threadBinOpOverSelect().
| AssumptionCache* llvm::SimplifyQuery::AC = nullptr |
Definition at line 75 of file SimplifyQuery.h.
Referenced by llvm::adjustKnownBitsForSelectArm(), llvm::computeKnownBitsFromContext(), computeKnownBitsFromOperator(), computeKnownBitsMul(), computeKnownFPClass(), computeKnownFPClassFromContext(), llvm::computeOverflowForSignedSub(), llvm::computeOverflowForUnsignedSub(), foldAndOrOfICmpsWithPow2AndWithZero(), foldCtpopPow2Test(), haveNoCommonBitsSetSpecialCases(), isKnownNonEqualFromContext(), isKnownNonZeroFromAssume(), isKnownNonZeroFromOperator(), llvm::isKnownToBeAPowerOfTwo(), isMaskOrZero(), setShiftFlags(), simplifyAndCommutative(), simplifyAndInst(), simplifyAShrInst(), simplifyFreezeInst(), simplifyICmpWithDominatingAssume(), simplifyPHINode(), SimplifyQuery(), SimplifyQuery(), and simplifyUnaryIntrinsic().
| bool llvm::SimplifyQuery::CanUseUndef = true |
Controls whether simplifications are allowed to constrain the range of possible values for uses of undef.
If it is false, simplifications are not allowed to assume a particular value for a use of undef for example.
Definition at line 88 of file SimplifyQuery.h.
Referenced by isUndefValue(), SimplifyQuery(), SimplifyQuery(), and simplifyWithOpsReplaced().
| const CondContext* llvm::SimplifyQuery::CC = nullptr |
Definition at line 78 of file SimplifyQuery.h.
Referenced by llvm::computeKnownBitsFromContext(), computeKnownFPClassFromContext(), and getWithCondContext().
| const Instruction* llvm::SimplifyQuery::CxtI = nullptr |
Definition at line 76 of file SimplifyQuery.h.
Referenced by llvm::adjustKnownBitsForSelectArm(), computeKnownBitsAddSub(), llvm::computeKnownBitsFromContext(), computeKnownBitsFromOperator(), computeKnownBitsMul(), computeKnownFPClass(), computeKnownFPClassFromContext(), ComputeNumSignBitsImpl(), llvm::computeOverflowForSignedSub(), llvm::computeOverflowForUnsignedSub(), foldAndOrOfICmpsWithPow2AndWithZero(), foldCtpopPow2Test(), foldOrCommuteConstant(), getKnownSign(), getKnownSignOrZero(), haveNoCommonBitsSetSpecialCases(), isKnownNonEqualFromContext(), isKnownNonZero(), isKnownNonZeroFromAssume(), isKnownNonZeroFromOperator(), llvm::isKnownToBeAPowerOfTwo(), isMaskOrZero(), isNonEqualPHIs(), isPowerOfTwoRecurrence(), setShiftFlags(), simplifyAndCommutative(), simplifyAndInst(), simplifyAShrInst(), simplifyByDomEq(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), simplifyFCmpInst(), simplifyFreezeInst(), simplifyICmpInst(), simplifyICmpWithDominatingAssume(), simplifyInstructionWithOperands(), simplifyPHINode(), SimplifyQuery(), SimplifyQuery(), SimplifyQuery(), simplifySelectInst(), simplifySelectWithFCmp(), and simplifyUnaryIntrinsic().
| const DomConditionCache* llvm::SimplifyQuery::DC = nullptr |
Definition at line 77 of file SimplifyQuery.h.
Referenced by llvm::computeKnownBitsFromContext(), computeKnownFPClassFromContext(), isKnownNonEqualFromContext(), llvm::isKnownToBeAPowerOfTwo(), and SimplifyQuery().
| const DataLayout& llvm::SimplifyQuery::DL |
Definition at line 72 of file SimplifyQuery.h.
Referenced by computeKnownBits(), llvm::computeKnownBits(), llvm::computeKnownBits(), computeKnownBitsAddSub(), computeKnownBitsForHorizontalOperation(), computeKnownBitsFromCmp(), computeKnownBitsFromOperator(), ComputeNumSignBitsImpl(), llvm::computeOverflowForUnsignedSub(), computePointerICmp(), dropRedundantMaskingOfLeftShiftInput(), foldAndOrOfICmpsWithPow2AndWithZero(), foldConstant(), foldCtpopPow2Test(), foldOrCommuteConstant(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), getKnownSign(), getKnownSignOrZero(), isGEPKnownNonNull(), isKnownNonEqual(), isKnownNonEqualFromContext(), isKnownNonZeroFromOperator(), isMaskOrZero(), isNonEqualPointersWithRecursiveGEP(), setShiftFlags(), simplifyAndCommutative(), simplifyAndInst(), simplifyAndOrOfCmps(), simplifyAShrInst(), llvm::simplifyBinaryIntrinsic(), simplifyByDomEq(), simplifyCastInst(), simplifyFCmpInst(), simplifyGEPInst(), simplifyICmpInst(), simplifyICmpOfBools(), simplifyICmpWithDominatingAssume(), simplifyInstructionWithOperands(), llvm::simplifyLoadInst(), simplifyOrInst(), SimplifyQuery(), SimplifyQuery(), SimplifyQuery(), simplifySelectInst(), simplifySelectWithICmpCond(), simplifySubInst(), simplifyUnaryIntrinsic(), and simplifyWithOpsReplaced().
| const DominatorTree* llvm::SimplifyQuery::DT = nullptr |
Definition at line 74 of file SimplifyQuery.h.
Referenced by llvm::adjustKnownBitsForSelectArm(), llvm::computeKnownBitsFromContext(), computeKnownBitsFromOperator(), computeKnownBitsMul(), computeKnownFPClass(), computeKnownFPClassFromContext(), llvm::computeOverflowForSignedSub(), llvm::computeOverflowForUnsignedSub(), foldAndOrOfICmpsWithPow2AndWithZero(), foldCtpopPow2Test(), haveNoCommonBitsSetSpecialCases(), isKnownNonEqualFromContext(), isKnownNonZero(), isKnownNonZeroFromAssume(), isKnownNonZeroFromOperator(), llvm::isKnownToBeAPowerOfTwo(), isMaskOrZero(), runImpl(), setShiftFlags(), simplifyAndCommutative(), simplifyAndInst(), simplifyAShrInst(), simplifyFreezeInst(), simplifyICmpWithDominatingAssume(), simplifyPHINode(), SimplifyQuery(), SimplifyQuery(), simplifyUnaryIntrinsic(), threadBinOpOverPHI(), and threadCmpOverPHI().
| const InstrInfoQuery llvm::SimplifyQuery::IIQ |
Definition at line 83 of file SimplifyQuery.h.
Referenced by llvm::computeConstantRangeIncludingKnownBits(), computeKnownBitsFromOperator(), computeKnownFPClass(), isKnownNonZeroFromOperator(), llvm::isKnownToBeAPowerOfTwo(), isPowerOfTwoRecurrence(), simplifyAndInst(), simplifyAndOfICmps(), simplifyAShrInst(), simplifyDivRem(), simplifyICmpInst(), simplifyICmpWithBinOp(), simplifyICmpWithConstant(), simplifyInstructionWithOperands(), simplifyLShrInst(), simplifyMulInst(), simplifyOrOfICmps(), SimplifyQuery(), SimplifyQuery(), simplifyRem(), and simplifyShlInst().
| const TargetLibraryInfo* llvm::SimplifyQuery::TLI = nullptr |
Definition at line 73 of file SimplifyQuery.h.
Referenced by computePointerICmp(), runImpl(), simplifyFCmpInst(), simplifyICmpInst(), simplifyInstructionWithOperands(), SimplifyQuery(), simplifyWithOpsReplaced(), and tryConstantFoldCall().