LLVM 19.0.0git
Public Member Functions | Public Attributes | List of all members
llvm::SimplifyQuery Struct Reference

#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
 
bool isUndefValue (Value *V) const
 If CanUseUndef is true, returns whether V is undef.
 

Public Attributes

const DataLayoutDL
 
const TargetLibraryInfoTLI = nullptr
 
const DominatorTreeDT = nullptr
 
AssumptionCacheAC = nullptr
 
const InstructionCxtI = nullptr
 
const DomConditionCacheDC = nullptr
 
const InstrInfoQuery IIQ
 
bool CanUseUndef = true
 Controls whether simplifications are allowed to constrain the range of possible values for uses of undef.
 

Detailed Description

Definition at line 60 of file SimplifyQuery.h.

Constructor & Destructor Documentation

◆ SimplifyQuery() [1/3]

llvm::SimplifyQuery::SimplifyQuery ( const DataLayout DL,
const Instruction CXTI = nullptr 
)
inline

Definition at line 78 of file SimplifyQuery.h.

◆ SimplifyQuery() [2/3]

llvm::SimplifyQuery::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 
)
inline

Definition at line 81 of file SimplifyQuery.h.

◆ SimplifyQuery() [3/3]

llvm::SimplifyQuery::SimplifyQuery ( const DataLayout DL,
const DominatorTree DT,
AssumptionCache AC = nullptr,
const Instruction CXTI = nullptr,
bool  UseInstrInfo = true,
bool  CanUseUndef = true 
)
inline

Definition at line 89 of file SimplifyQuery.h.

Member Function Documentation

◆ getWithInstruction()

SimplifyQuery llvm::SimplifyQuery::getWithInstruction ( const Instruction I) const
inline

Definition at line 96 of file SimplifyQuery.h.

References I.

Referenced by llvm::GCNTTIImpl::canSimplifyLegacyMulToMul(), llvm::InstCombiner::computeKnownBits(), computeKnownFPClass(), llvm::InstCombiner::computeOverflowForSignedAdd(), llvm::InstCombiner::computeOverflowForSignedMul(), llvm::InstCombiner::computeOverflowForSignedSub(), llvm::InstCombiner::computeOverflowForUnsignedAdd(), llvm::InstCombiner::computeOverflowForUnsignedMul(), llvm::InstCombiner::computeOverflowForUnsignedSub(), llvm::InstCombinerImpl::foldAddWithConstant(), llvm::InstCombinerImpl::foldICmpAddConstant(), llvm::InstCombinerImpl::foldICmpBinOp(), llvm::InstCombinerImpl::foldICmpCommutative(), llvm::InstCombinerImpl::foldICmpIntrinsicWithConstant(), llvm::InstCombinerImpl::foldICmpWithMinMax(), llvm::InstCombinerImpl::foldICmpWithZero(), foldSelectBinOpIdentity(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), llvm::InstCombinerImpl::foldSignBitTest(), llvm::InstCombinerImpl::foldUsingDistributiveLaws(), llvm::InstCombiner::MaskedValueIsZero(), llvm::InstCombinerImpl::reassociateShiftAmtsOfTwoSameDirectionShifts(), simplifyAndOrWithOpReplaced(), llvm::InstCombinerImpl::SimplifyAssociativeOrCommutative(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), simplifyInstructionWithOperands(), simplifyInstructionWithPHI(), simplifyLoopInst(), llvm::InstCombinerImpl::SimplifyMultipleUseDemandedBits(), llvm::InstCombinerImpl::SimplifySelectsFeedingBinaryOp(), threadBinOpOverPHI(), threadCmpOverPHI(), tryFactorization(), llvm::InstCombinerImpl::visitAdd(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitAShr(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitExtractElementInst(), llvm::InstCombinerImpl::visitExtractValueInst(), llvm::InstCombinerImpl::visitFAdd(), llvm::InstCombinerImpl::visitFCmpInst(), llvm::InstCombinerImpl::visitFDiv(), llvm::InstCombinerImpl::visitFMul(), llvm::InstCombinerImpl::visitFreeze(), llvm::InstCombinerImpl::visitFRem(), llvm::InstCombinerImpl::visitGEPOfGEP(), llvm::InstCombinerImpl::visitGetElementPtrInst(), llvm::InstCombinerImpl::visitICmpInst(), llvm::InstCombinerImpl::visitInsertElementInst(), llvm::InstCombinerImpl::visitInsertValueInst(), llvm::InstCombinerImpl::visitLoadInst(), llvm::InstCombinerImpl::visitLShr(), llvm::InstCombinerImpl::visitMul(), llvm::InstCombinerImpl::visitOr(), llvm::InstCombinerImpl::visitPHINode(), llvm::InstCombinerImpl::visitSDiv(), llvm::InstCombinerImpl::visitSExt(), llvm::InstCombinerImpl::visitShl(), llvm::InstCombinerImpl::visitShuffleVectorInst(), llvm::InstCombinerImpl::visitSRem(), llvm::InstCombinerImpl::visitSub(), llvm::InstCombinerImpl::visitUDiv(), llvm::InstCombinerImpl::visitURem(), llvm::InstCombinerImpl::visitXor(), and llvm::InstCombinerImpl::visitZExt().

◆ getWithoutUndef()

SimplifyQuery llvm::SimplifyQuery::getWithoutUndef ( ) const
inline

◆ isUndefValue()

bool llvm::SimplifyQuery::isUndefValue ( Value V) const
inline

Member Data Documentation

◆ AC

AssumptionCache* llvm::SimplifyQuery::AC = nullptr

◆ CanUseUndef

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 76 of file SimplifyQuery.h.

Referenced by isUndefValue().

◆ CxtI

const Instruction* llvm::SimplifyQuery::CxtI = nullptr

◆ DC

const DomConditionCache* llvm::SimplifyQuery::DC = nullptr

◆ DL

const DataLayout& llvm::SimplifyQuery::DL

◆ DT

const DominatorTree* llvm::SimplifyQuery::DT = nullptr

◆ IIQ

const InstrInfoQuery llvm::SimplifyQuery::IIQ

◆ TLI

const TargetLibraryInfo* llvm::SimplifyQuery::TLI = nullptr

The documentation for this struct was generated from the following file: