LLVM 20.0.0git
|
#include "llvm/Transforms/Scalar/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, unsigned Idx, Value *&AAPtr, const SCEV *&AlignSCEV, const SCEV *&OffSCEV) |
bool | processAssumption (CallInst *I, unsigned Idx) |
Public Member Functions inherited from llvm::PassInfoMixin< AlignmentFromAssumptionsPass > | |
void | printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName) |
Public Attributes | |
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. | |
Definition at line 31 of file AlignmentFromAssumptions.h.
bool AlignmentFromAssumptionsPass::extractAlignmentInfo | ( | CallInst * | I, |
unsigned | Idx, | ||
Value *& | AAPtr, | ||
const SCEV *& | AlignSCEV, | ||
const SCEV *& | OffSCEV | ||
) |
Definition at line 159 of file AlignmentFromAssumptions.cpp.
References assert(), llvm::Type::getInt64Ty(), llvm::ScalarEvolution::getSCEV(), llvm::OperandBundleUse::getTagName(), llvm::ScalarEvolution::getTruncateOrZeroExtend(), llvm::ScalarEvolution::getZero(), I, Idx, llvm::OperandBundleUse::Inputs, SE, and llvm::Value::stripPointerCastsSameRepresentation().
Referenced by processAssumption().
Definition at line 189 of file AlignmentFromAssumptions.cpp.
References llvm::SmallPtrSetImpl< PtrType >::count(), llvm::dbgs(), llvm::dwarf_linker::DebugStr, DT, llvm::SmallVectorBase< Size_T >::empty(), extractAlignmentInfo(), llvm::Instruction::getFunction(), getNewAlignment(), llvm::ScalarEvolution::getSCEV(), Idx, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::isValidAssumeForContext(), LLVM_DEBUG, MI, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), SE, llvm::Value::users(), and llvm::Value::uses().
Referenced by runImpl().
PreservedAnalyses AlignmentFromAssumptionsPass::run | ( | Function & | F, |
FunctionAnalysisManager & | AM | ||
) |
Definition at line 301 of file AlignmentFromAssumptions.cpp.
References llvm::PreservedAnalyses::all(), DT, F, llvm::AnalysisManager< IRUnitT, ExtraArgTs >::getResult(), llvm::PreservedAnalyses::preserve(), llvm::PreservedAnalyses::preserveSet(), runImpl(), and SE.
bool AlignmentFromAssumptionsPass::runImpl | ( | Function & | F, |
AssumptionCache & | AC, | ||
ScalarEvolution * | SE_, | ||
DominatorTree * | DT_ | ||
) |
Definition at line 283 of file AlignmentFromAssumptions.cpp.
References llvm::AssumptionCache::assumptions(), DT, Idx, processAssumption(), and SE.
Referenced by run().
DominatorTree* llvm::AlignmentFromAssumptionsPass::DT = nullptr |
Definition at line 40 of file AlignmentFromAssumptions.h.
Referenced by processAssumption(), run(), and runImpl().
ScalarEvolution* llvm::AlignmentFromAssumptionsPass::SE = nullptr |
Definition at line 39 of file AlignmentFromAssumptions.h.
Referenced by extractAlignmentInfo(), processAssumption(), run(), and runImpl().