|
LLVM
4.0.0
|
#include <AlignmentFromAssumptions.h>
Public Member Functions | |
| PreservedAnalyses | run (Function &F, FunctionAnalysisManager &AM) |
| bool | runImpl (Function &F, AssumptionCache &AC, ScalarEvolution *SE_, DominatorTree *DT_) |
| bool | extractAlignmentInfo (CallInst *I, Value *&AAPtr, const SCEV *&AlignSCEV, const SCEV *&OffSCEV) |
| bool | processAssumption (CallInst *I) |
Public Attributes | |
| DenseMap< MemTransferInst *, unsigned > | NewDestAlignments |
| DenseMap< MemTransferInst *, unsigned > | NewSrcAlignments |
| ScalarEvolution * | SE = nullptr |
| DominatorTree * | DT = nullptr |
Additional Inherited Members | |
Static Public Member Functions inherited from llvm::PassInfoMixin< AlignmentFromAssumptionsPass > | |
| static StringRef | name () |
| Gets the name of the pass we are mixed into. More... | |
Definition at line 28 of file AlignmentFromAssumptions.h.
| bool AlignmentFromAssumptionsPass::extractAlignmentInfo | ( | CallInst * | I, |
| Value *& | AAPtr, | ||
| const SCEV *& | AlignSCEV, | ||
| const SCEV *& | OffSCEV | ||
| ) |
Definition at line 200 of file AlignmentFromAssumptions.cpp.
References llvm::APIntOps::And(), llvm::APInt::countTrailingOnes(), llvm::dyn_cast(), llvm::SCEVConstant::getAPInt(), llvm::CallInst::getArgOperand(), llvm::ScalarEvolution::getConstant(), llvm::Function::getContext(), llvm::Type::getInt64Ty(), llvm::ScalarEvolution::getMinusSCEV(), llvm::BinaryOperator::getOpcode(), llvm::User::getOperand(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::CmpInst::getPredicate(), llvm::Type::getPrimitiveSizeInBits(), llvm::ScalarEvolution::getSCEV(), llvm::ScalarEvolution::getSignExtendExpr(), llvm::SCEV::getType(), llvm::ScalarEvolution::getZero(), llvm::CmpInst::ICMP_EQ, llvm::SCEV::isZero(), llvm::Value::MaximumAlignment, fuzzer::min(), SE, llvm::Value::stripPointerCasts(), and std::swap().
Referenced by processAssumption().
Definition at line 294 of file AlignmentFromAssumptions.cpp.
References assert(), llvm::SmallPtrSetImpl< PtrType >::count(), llvm::dbgs(), DEBUG, DT, llvm::SmallVectorBase::empty(), extractAlignmentInfo(), llvm::ConstantInt::get(), llvm::Type::getInt32Ty(), getNewAlignment(), llvm::ScalarEvolution::getSCEV(), llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::isValidAssumeForContext(), MI, NewDestAlignments, NewSrcAlignments, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), SE, SI, and llvm::Value::users().
Referenced by runImpl().
| PreservedAnalyses AlignmentFromAssumptionsPass::run | ( | Function & | F, |
| FunctionAnalysisManager & | AM | ||
| ) |
Definition at line 436 of file AlignmentFromAssumptions.cpp.
References llvm::PreservedAnalyses::all(), F, llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getResult(), llvm::AnalysisManager< IRUnitT, ExtraArgTs >::invalidate(), llvm::PreservedAnalyses::preserve(), and runImpl().
| bool AlignmentFromAssumptionsPass::runImpl | ( | Function & | F, |
| AssumptionCache & | AC, | ||
| ScalarEvolution * | SE_, | ||
| DominatorTree * | DT_ | ||
| ) |
Definition at line 418 of file AlignmentFromAssumptions.cpp.
References llvm::AssumptionCache::assumptions(), NewDestAlignments, NewSrcAlignments, and processAssumption().
Referenced by run().
| DominatorTree* llvm::AlignmentFromAssumptionsPass::DT = nullptr |
Definition at line 43 of file AlignmentFromAssumptions.h.
Referenced by processAssumption().
| DenseMap<MemTransferInst *, unsigned> llvm::AlignmentFromAssumptionsPass::NewDestAlignments |
Definition at line 40 of file AlignmentFromAssumptions.h.
Referenced by processAssumption(), and runImpl().
| DenseMap<MemTransferInst *, unsigned> llvm::AlignmentFromAssumptionsPass::NewSrcAlignments |
Definition at line 40 of file AlignmentFromAssumptions.h.
Referenced by processAssumption(), and runImpl().
| ScalarEvolution* llvm::AlignmentFromAssumptionsPass::SE = nullptr |
Definition at line 42 of file AlignmentFromAssumptions.h.
Referenced by extractAlignmentInfo(), and processAssumption().
1.8.6