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: