LLVM: llvm::SimplifyQuery Struct Reference (original) (raw)
#include "[llvm/Analysis/SimplifyQuery.h](SimplifyQuery%5F8h%5Fsource.html)"
| 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.
◆ SimplifyQuery() [2/3]
◆ SimplifyQuery() [3/3]
◆ getWithCondContext()
◆ getWithInstruction()
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().
◆ getWithoutCondContext()
| SimplifyQuery llvm::SimplifyQuery::getWithoutCondContext ( ) const | inline |
|---|
◆ getWithoutDomCondCache()
| SimplifyQuery llvm::SimplifyQuery::getWithoutDomCondCache ( ) const | inline |
|---|
◆ getWithoutUndef()
| SimplifyQuery llvm::SimplifyQuery::getWithoutUndef ( ) const | inline |
|---|
◆ isUndefValue()
| bool llvm::SimplifyQuery::isUndefValue | ( | Value * | V | ) | const |
|---|
If CanUseUndef is true, returns whether V is undef.
Otherwise always return false.
Definition at line 7689 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().
◆ AC
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().
◆ CanUseUndef
bool llvm::SimplifyQuery::CanUseUndef = true
◆ CC
◆ CxtI
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().
◆ DC
◆ 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().
◆ DT
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().
◆ 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().
◆ TLI
The documentation for this struct was generated from the following files:
- include/llvm/Analysis/SimplifyQuery.h
- lib/Analysis/InstructionSimplify.cpp