|
LLVM
3.7.0
|
#include "llvm/Analysis/LazyValueInfo.h"#include "llvm/ADT/DenseSet.h"#include "llvm/ADT/STLExtras.h"#include "llvm/Analysis/AssumptionCache.h"#include "llvm/Analysis/ConstantFolding.h"#include "llvm/Analysis/TargetLibraryInfo.h"#include "llvm/Analysis/ValueTracking.h"#include "llvm/IR/CFG.h"#include "llvm/IR/ConstantRange.h"#include "llvm/IR/Constants.h"#include "llvm/IR/DataLayout.h"#include "llvm/IR/Dominators.h"#include "llvm/IR/Instructions.h"#include "llvm/IR/IntrinsicInst.h"#include "llvm/IR/PatternMatch.h"#include "llvm/IR/ValueHandle.h"#include "llvm/Support/Debug.h"#include "llvm/Support/raw_ostream.h"#include <map>#include <stack>Go to the source code of this file.
Namespaces | |
| llvm | |
| Compute iterated dominance frontiers using a linear time algorithm. | |
Macros | |
| #define | DEBUG_TYPE "lazy-value-info" |
Functions | |
| INITIALIZE_PASS_BEGIN (LazyValueInfo,"lazy-value-info","Lazy Value Information Analysis", false, true) INITIALIZE_PASS_END(LazyValueInfo | |
| FunctionPass * | llvm::createLazyValueInfoPass () |
| createLazyValueInfoPass - This creates an instance of the LazyValueInfo pass. More... | |
| raw_ostream & | llvm::operator<< (raw_ostream &OS, const LVILatticeVal &Val) LLVM_ATTRIBUTE_USED |
| static bool | InstructionDereferencesPointer (Instruction *I, Value *Ptr) |
| static bool | getValueFromFromCondition (Value *Val, ICmpInst *ICI, LVILatticeVal &Result, bool isTrueDest=true) |
| static bool | getEdgeValueLocal (Value *Val, BasicBlock *BBFrom, BasicBlock *BBTo, LVILatticeVal &Result) |
| Compute the value of Val on the edge BBFrom -> BBTo. More... | |
| static LazyValueInfoCache & | getCache (void *&PImpl, AssumptionCache *AC, const DataLayout *DL, DominatorTree *DT=nullptr) |
| This lazily constructs the LazyValueInfoCache. More... | |
| static LazyValueInfo::Tristate | getPredicateResult (unsigned Pred, Constant *C, LVILatticeVal &Result, const DataLayout &DL, TargetLibraryInfo *TLI) |
Variables | |
| lazy value | info |
| lazy value Lazy Value Information | Analysis |
| lazy value Lazy Value Information | false |
| #define DEBUG_TYPE "lazy-value-info" |
Definition at line 38 of file LazyValueInfo.cpp.
|
static |
This lazily constructs the LazyValueInfoCache.
Definition at line 1103 of file LazyValueInfo.cpp.
Referenced by llvm::LazyValueInfo::eraseBlock(), llvm::LazyValueInfo::getConstant(), llvm::LazyValueInfo::getConstantOnEdge(), llvm::LazyValueInfo::getPredicateAt(), llvm::LazyValueInfo::getPredicateOnEdge(), llvm::LazyValueInfo::releaseMemory(), llvm::LazyValueInfo::runOnFunction(), and llvm::LazyValueInfo::threadEdge().
|
static |
Compute the value of Val on the edge BBFrom -> BBTo.
Returns false if Val is not constrained on the edge.
Definition at line 878 of file LazyValueInfo.cpp.
References llvm::ConstantRange::difference(), llvm::ConstantInt::get(), llvm::Value::getContext(), llvm::Type::getInt1Ty(), llvm::Type::getIntegerBitWidth(), llvm::BasicBlock::getTerminator(), llvm::Value::getType(), getValueFromFromCondition(), SI, and llvm::ConstantRange::unionWith().
|
static |
Definition at line 1179 of file LazyValueInfo.cpp.
References llvm::CallingConv::C, llvm::ConstantFoldCompareInstOperands(), llvm::ConstantRange::contains(), llvm::dyn_cast(), llvm::LazyValueInfo::False, llvm::ConstantInt::getValue(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_NE, llvm::ConstantRange::inverse(), llvm::Constant::isNullValue(), llvm::ConstantRange::isSingleElement(), llvm::ICmpInst::makeConstantRange(), llvm::LazyValueInfo::True, and llvm::LazyValueInfo::Unknown.
Referenced by llvm::LazyValueInfo::getPredicateAt(), and llvm::LazyValueInfo::getPredicateOnEdge().
|
static |
Definition at line 835 of file LazyValueInfo.cpp.
References llvm::dyn_cast(), llvm::User::getOperand(), llvm::CmpInst::getPredicate(), llvm::ConstantInt::getValue(), llvm::CmpInst::ICMP_EQ, llvm::CmpInst::ICMP_ULT, llvm::ConstantRange::inverse(), llvm::ICmpInst::isEquality(), llvm::PatternMatch::m_Add(), llvm::PatternMatch::m_ConstantInt(), llvm::PatternMatch::m_Specific(), llvm::ConstantRange::makeAllowedICmpRegion(), llvm::PatternMatch::match(), and llvm::ConstantRange::subtract().
Referenced by getEdgeValueLocal().
| INITIALIZE_PASS_BEGIN | ( | LazyValueInfo | , |
| "lazy-value-info" | , | ||
| "Lazy Value Information Analysis" | , | ||
| false | , | ||
| true | |||
| ) |
|
static |
Definition at line 571 of file LazyValueInfo.cpp.
References llvm::dyn_cast(), llvm::GetUnderlyingObject(), llvm::ConstantInt::isZero(), and llvm::AArch64CC::MI.
| lazy value Lazy Value Information Analysis |
Definition at line 45 of file LazyValueInfo.cpp.
| lazy value Lazy Value Information false |
Definition at line 45 of file LazyValueInfo.cpp.
| lazy value info |
Definition at line 45 of file LazyValueInfo.cpp.
Referenced by findLiveReferences(), llvm::CCState::getInRegsParamInfo(), insertParsePoints(), and recomputeLiveInValues().
1.8.6