[llvm] 34fb780 - GlobalISel: Pass through AssumptionCache
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 19 16:11:01 PDT 2022
Author: Matt Arsenault
Date: 2022-09-19T19:10:51-04:00
New Revision: 34fb7803f8f50c347c9ab531850391a911c7cbc6
URL: https://github.com/llvm/llvm-project/commit/34fb7803f8f50c347c9ab531850391a911c7cbc6
DIFF: https://github.com/llvm/llvm-project/commit/34fb7803f8f50c347c9ab531850391a911c7cbc6.diff
LOG: GlobalISel: Pass through AssumptionCache
Added:
Modified:
llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h
llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h b/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h
index a1c07b05397af..67e884038b478 100644
--- a/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h
+++ b/llvm/include/llvm/CodeGen/GlobalISel/IRTranslator.h
@@ -34,6 +34,7 @@
namespace llvm {
class AllocaInst;
+class AssumptionCache;
class BasicBlock;
class CallInst;
class CallLowering;
@@ -571,6 +572,7 @@ class IRTranslator : public MachineFunctionPass {
std::unique_ptr<OptimizationRemarkEmitter> ORE;
AAResults *AA;
+ AssumptionCache *AC;
const TargetLibraryInfo *LibInfo;
FunctionLoweringInfo FuncInfo;
diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
index 714f563894d67..c6871724da8d2 100644
--- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
@@ -16,6 +16,7 @@
#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"
@@ -169,6 +170,7 @@ void IRTranslator::getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequired<StackProtector>();
AU.addRequired<TargetPassConfig>();
AU.addRequired<GISelCSEAnalysisWrapperPass>();
+ AU.addRequired<AssumptionCacheTracker>();
if (OptLevel != CodeGenOpt::None) {
AU.addRequired<BranchProbabilityInfoWrapperPass>();
AU.addRequired<AAResultsWrapperPass>();
@@ -1313,7 +1315,7 @@ bool IRTranslator::translateLoad(const User &U, MachineIRBuilder &MIRBuilder) {
if (!(Flags & MachineMemOperand::MODereferenceable)) {
if (isDereferenceableAndAlignedPointer(Ptr, LI.getType(), LI.getAlign(),
- *DL, &LI, nullptr, nullptr, LibInfo))
+ *DL, &LI, AC, nullptr, LibInfo))
Flags |= MachineMemOperand::MODereferenceable;
}
@@ -3397,6 +3399,8 @@ bool IRTranslator::runOnMachineFunction(MachineFunction &CurMF) {
FuncInfo.BPI = nullptr;
}
+ AC = &getAnalysis<AssumptionCacheTracker>().getAssumptionCache(
+ MF->getFunction());
LibInfo = &getAnalysis<TargetLibraryInfoWrapperPass>().getTLI(F);
FuncInfo.CanLowerReturn = CLI->checkReturnTypeForCallConv(*MF);
More information about the llvm-commits
mailing list