|
LLVM 24.0.0git
|
#include "llvm/Analysis/SimplifyQuery.h"
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. | |
| bool | AllowEphemerals = false |
Definition at line 71 of file SimplifyQuery.h.
|
inline |
Definition at line 95 of file SimplifyQuery.h.
Referenced by allowEphemerals(), getWithCondContext(), getWithFunction(), getWithInstruction(), getWithoutCondContext(), getWithoutDomCondCache(), and getWithoutUndef().
|
inline |
Definition at line 98 of file SimplifyQuery.h.
|
inline |
Definition at line 106 of file SimplifyQuery.h.
|
inline |
Definition at line 135 of file SimplifyQuery.h.
References AllowEphemerals, and SimplifyQuery().
Definition at line 123 of file SimplifyQuery.h.
References CxtI.
Referenced by simplifyAddrSpaceCastInst(), simplifyBinaryIntrinsic(), simplifyFCmpInst(), simplifyInstructionWithOperands(), and llvm::simplifyIntrinsic().
|
inline |
Definition at line 151 of file SimplifyQuery.h.
References CC, and SimplifyQuery().
|
inline |
Definition at line 118 of file SimplifyQuery.h.
References F, and SimplifyQuery().
Referenced by simplifyIntrinsic().
|
inline |
Definition at line 113 of file SimplifyQuery.h.
References I, and SimplifyQuery().
Referenced by llvm::GCNTTIImpl::canSimplifyLegacyMulToMul(), llvm::computeConstantRange(), computeKnownBitsFromOperator(), computeKnownFPClass(), foldCtpop(), foldCttzCtlz(), foldFCmpFSubIntoFCmp(), foldFPtoI(), foldICmpAndXX(), foldSelectBinOpIdentity(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), llvm::RISCVTTIImpl::instCombineIntrinsic(), simplifyAndOrWithOpReplaced(), llvm::InstCombinerImpl::SimplifyDemandedUseFPClass(), simplifyInstructionWithOperands(), simplifyInstructionWithPHI(), simplifyLoopInst(), simplifyX86FPMaxMin(), threadBinOpOverPHI(), threadCmpOverPHI(), and tryFactorization().
|
inline |
Definition at line 157 of file SimplifyQuery.h.
References SimplifyQuery().
Referenced by computeKnownBitsForRecurrenceOperands(), computeKnownBitsFromOperator(), computeKnownFPClass(), ComputeNumSignBitsImpl(), isKnownNonZeroFromOperator(), llvm::isKnownToBeAPowerOfTwo(), and isNonEqualPHIs().
|
inline |
Definition at line 145 of file SimplifyQuery.h.
References SimplifyQuery().
|
inline |
Definition at line 130 of file SimplifyQuery.h.
References SimplifyQuery().
Referenced by expandBinOp(), simplifyAndOrWithICmpEq(), simplifyBinaryIntrinsic(), simplifySelectWithEquivalence(), and llvm::simplifyWithOpReplaced().
If CanUseUndef is true, returns whether V is undef.
Otherwise always return false.
Definition at line 8009 of file InstructionSimplify.cpp.
References CanUseUndef, llvm::PatternMatch::m_Undef(), and llvm::PatternMatch::match().
Referenced by llvm::GCNTTIImpl::instCombineIntrinsic(), isPoisonShift(), simplifyAddInst(), simplifyAndInst(), simplifyBinaryIntrinsic(), simplifyDivRem(), simplifyExtractElementInst(), simplifyFCmpInst(), simplifyFPOp(), simplifyGEPInst(), simplifyICmpInst(), llvm::simplifyInsertElementInst(), simplifyInsertValueInst(), llvm::simplifyIntrinsic(), simplifyLdexp(), simplifyMulInst(), simplifyOrInst(), simplifyPHINode(), simplifyRightShift(), simplifySelectInst(), simplifyShlInst(), simplifyShuffleVectorInst(), simplifySubInst(), simplifyXorInst(), and threadBinOpOverSelect().
| AssumptionCache* llvm::SimplifyQuery::AC = nullptr |
Definition at line 79 of file SimplifyQuery.h.
Referenced by llvm::adjustKnownBitsForSelectArm(), llvm::adjustKnownFPClassForSelectArm(), canoncalizeSelectICmpMinMax(), canScalarizeAccess(), llvm::computeConstantRange(), llvm::computeKnownBitsFromContext(), computeKnownBitsFromOperator(), computeKnownBitsMul(), computeKnownFPClass(), computeKnownFPClassFromContext(), llvm::computeOverflowForSignedSub(), llvm::computeOverflowForUnsignedSub(), foldCtpopPow2Test(), haveNoCommonBitsSetSpecialCases(), isDereferenceableAndAlignedPointer(), isDereferenceableAndAlignedPointerViaAssumption(), isKnownNonEqualFromContext(), isKnownNonPositive(), isKnownNonZeroFromAssume(), isKnownNonZeroFromOperator(), llvm::isKnownToBeAPowerOfTwo(), isMaskOrZero(), setShiftFlags(), simplifyAndCommutative(), simplifyAndInst(), simplifyAShrInst(), simplifyFreezeInst(), simplifyICmpWithDominatingAssume(), simplifyPHINode(), SimplifyQuery(), SimplifyQuery(), and simplifyUnaryIntrinsic().
| bool llvm::SimplifyQuery::AllowEphemerals = false |
Definition at line 93 of file SimplifyQuery.h.
Referenced by allowEphemerals(), and llvm::isValidAssumeForContext().
| 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 92 of file SimplifyQuery.h.
Referenced by isUndefValue(), SimplifyQuery(), SimplifyQuery(), and simplifyWithOpsReplaced().
| const CondContext* llvm::SimplifyQuery::CC = nullptr |
Definition at line 82 of file SimplifyQuery.h.
Referenced by llvm::computeKnownBitsFromContext(), computeKnownFPClassFromContext(), and getWithCondContext().
| const Instruction* llvm::SimplifyQuery::CxtI = nullptr |
Definition at line 80 of file SimplifyQuery.h.
Referenced by llvm::adjustKnownBitsForSelectArm(), llvm::adjustKnownFPClassForSelectArm(), canoncalizeSelectICmpMinMax(), canScalarizeAccess(), llvm::computeConstantRange(), computeKnownBitsAddSub(), computeKnownBitsForRecurrenceOperands(), llvm::computeKnownBitsFromContext(), computeKnownBitsFromOperator(), computeKnownBitsMul(), computeKnownExponentRangeFromContext(), computeKnownFPClass(), computeKnownFPClassFromContext(), ComputeNumSignBitsImpl(), llvm::computeOverflowForSignedSub(), llvm::computeOverflowForUnsignedSub(), foldCtpopPow2Test(), foldOrCommuteConstant(), getFunction(), getKnownSign(), getKnownSignOrZero(), haveNoCommonBitsSetSpecialCases(), isDereferenceableAndAlignedPointer(), isDereferenceableAndAlignedPointerViaAssumption(), isKnownNonEqualFromContext(), isKnownNonPositive(), isKnownNonZero(), isKnownNonZeroFromAssume(), isKnownNonZeroFromOperator(), llvm::isKnownToBeAPowerOfTwo(), isMaskOrZero(), isNonEqualPHIs(), isNonEqualURem(), isPowerOfTwoRecurrence(), llvm::isSafeToLoadUnconditionally(), llvm::isValidAssumeForContext(), setShiftFlags(), simplifyAndCommutative(), simplifyAndInst(), simplifyAShrInst(), simplifyByDomEq(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), simplifyFCmpInst(), simplifyFreezeInst(), simplifyICmpInst(), simplifyICmpWithDominatingAssume(), simplifyInstructionWithOperands(), simplifyPHINode(), SimplifyQuery(), SimplifyQuery(), SimplifyQuery(), simplifySelectInst(), and simplifyUnaryIntrinsic().
| const DomConditionCache* llvm::SimplifyQuery::DC = nullptr |
Definition at line 81 of file SimplifyQuery.h.
Referenced by llvm::computeKnownBitsFromContext(), computeKnownExponentRangeFromContext(), computeKnownFPClassFromContext(), isKnownNonEqualFromContext(), llvm::isKnownToBeAPowerOfTwo(), and SimplifyQuery().
| const DataLayout& llvm::SimplifyQuery::DL |
Definition at line 76 of file SimplifyQuery.h.
Referenced by computeKnownBits(), llvm::computeKnownBits(), llvm::computeKnownBits(), computeKnownBitsAddSub(), computeKnownBitsForHorizontalOperation(), computeKnownBitsFromCmp(), computeKnownBitsFromOperator(), ComputeNumSignBitsImpl(), llvm::computeOverflowForUnsignedSub(), computePointerICmp(), dropRedundantMaskingOfLeftShiftInput(), foldConstant(), foldCtpopPow2Test(), foldOrCommuteConstant(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), getKnownSign(), getKnownSignOrZero(), isDereferenceableAndAlignedPointer(), llvm::isDereferenceableAndAlignedPointer(), isDereferenceableAndAlignedPointerViaAssumption(), isGEPKnownNonNull(), isKnownNonEqual(), isKnownNonEqualFromContext(), isKnownNonPositive(), isKnownNonZeroFromOperator(), isMaskOrZero(), isNonEqualPointersWithRecursiveGEP(), isNonEqualURem(), llvm::isSafeToLoadUnconditionally(), llvm::isSafeToLoadUnconditionally(), setShiftFlags(), simplifyAndCommutative(), simplifyAndInst(), simplifyAndOrOfCmps(), simplifyAShrInst(), simplifyBinaryIntrinsic(), simplifyByDomEq(), simplifyCastInst(), simplifyFCmpInst(), simplifyGEPInst(), simplifyICmpInst(), simplifyICmpOfBools(), simplifyICmpWithDominatingAssume(), simplifyInstructionWithOperands(), llvm::simplifyIntrinsic(), llvm::simplifyLoadInst(), simplifyOrInst(), SimplifyQuery(), SimplifyQuery(), SimplifyQuery(), simplifySelectInst(), simplifySelectWithICmpCond(), simplifySubInst(), simplifyUnaryIntrinsic(), and simplifyWithOpsReplaced().
| const DominatorTree* llvm::SimplifyQuery::DT = nullptr |
Definition at line 78 of file SimplifyQuery.h.
Referenced by llvm::adjustKnownBitsForSelectArm(), llvm::adjustKnownFPClassForSelectArm(), canoncalizeSelectICmpMinMax(), canScalarizeAccess(), llvm::computeKnownBitsFromContext(), computeKnownBitsFromOperator(), computeKnownBitsMul(), computeKnownExponentRangeFromContext(), computeKnownFPClass(), computeKnownFPClassFromContext(), llvm::computeOverflowForSignedSub(), llvm::computeOverflowForUnsignedSub(), foldCtpopPow2Test(), haveNoCommonBitsSetSpecialCases(), isDereferenceableAndAlignedPointer(), isDereferenceableAndAlignedPointerViaAssumption(), isKnownNonEqualFromContext(), isKnownNonPositive(), isKnownNonZero(), isKnownNonZeroFromOperator(), llvm::isKnownToBeAPowerOfTwo(), isMaskOrZero(), llvm::isValidAssumeForContext(), runImpl(), setShiftFlags(), simplifyAndCommutative(), simplifyAndInst(), simplifyAShrInst(), simplifyFreezeInst(), simplifyPHINode(), SimplifyQuery(), SimplifyQuery(), simplifyUnaryIntrinsic(), threadBinOpOverPHI(), and threadCmpOverPHI().
| const InstrInfoQuery llvm::SimplifyQuery::IIQ |
Definition at line 87 of file SimplifyQuery.h.
Referenced by llvm::computeConstantRange(), 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 77 of file SimplifyQuery.h.
Referenced by computePointerICmp(), isDereferenceableAndAlignedPointer(), runImpl(), simplifyFCmpInst(), simplifyICmpInst(), simplifyInstructionWithOperands(), SimplifyQuery(), simplifyWithOpsReplaced(), and tryConstantFoldCall().