#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Analysis/AliasAnalysis.h"
+#include "llvm/Analysis/AssumptionCache.h"
#include "llvm/Analysis/BranchProbabilityInfo.h"
#include "llvm/Analysis/Loads.h"
#include "llvm/Analysis/OptimizationRemarkEmitter.h"
AU.addRequired<StackProtector>();
AU.addRequired<TargetPassConfig>();
AU.addRequired<GISelCSEAnalysisWrapperPass>();
+ AU.addRequired<AssumptionCacheTracker>();
if (OptLevel != CodeGenOpt::None) {
AU.addRequired<BranchProbabilityInfoWrapperPass>();
AU.addRequired<AAResultsWrapperPass>();
if (!(Flags & MachineMemOperand::MODereferenceable)) {
if (isDereferenceableAndAlignedPointer(Ptr, LI.getType(), LI.getAlign(),
- *DL, &LI, nullptr, nullptr, LibInfo))
+ *DL, &LI, AC, nullptr, LibInfo))
Flags |= MachineMemOperand::MODereferenceable;
}
FuncInfo.BPI = nullptr;
}
+ AC = &getAnalysis<AssumptionCacheTracker>().getAssumptionCache(
+ MF->getFunction());
LibInfo = &getAnalysis<TargetLibraryInfoWrapperPass>().getTLI(F);
FuncInfo.CanLowerReturn = CLI->checkReturnTypeForCallConv(*MF);