[llvm] f8ce2e4 - [Matrix] Only retrieve analyses if there are any matrix intrinsics (NFC)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 2 03:23:08 PST 2024
Author: Florian Hahn
Date: 2024-12-02T11:22:24Z
New Revision: f8ce2e4bb38609033098714a467e25abe5b1f9d4
URL: https://github.com/llvm/llvm-project/commit/f8ce2e4bb38609033098714a467e25abe5b1f9d4
DIFF: https://github.com/llvm/llvm-project/commit/f8ce2e4bb38609033098714a467e25abe5b1f9d4.diff
LOG: [Matrix] Only retrieve analyses if there are any matrix intrinsics (NFC)
Only request analyses if there are any matrix intrinics to avoid
computing them if there are no matrix intrinsics.
Added:
Modified:
llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp b/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
index 62ab83dae8ae66..6a9ec48864b2c5 100644
--- a/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
+++ b/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
@@ -323,10 +323,11 @@ class LowerMatrixIntrinsics {
Function &Func;
const DataLayout &DL;
const TargetTransformInfo &TTI;
- AliasAnalysis *AA;
- DominatorTree *DT;
- LoopInfo *LI;
- OptimizationRemarkEmitter *ORE;
+ FunctionAnalysisManager *AM;
+ AliasAnalysis *AA = nullptr;
+ DominatorTree *DT = nullptr;
+ LoopInfo *LI = nullptr;
+ OptimizationRemarkEmitter *ORE = nullptr;
/// Contains estimates of the number of operations (loads, stores, compute) required to lower a matrix operation.
struct OpInfoTy {
@@ -519,10 +520,8 @@ class LowerMatrixIntrinsics {
public:
LowerMatrixIntrinsics(Function &F, TargetTransformInfo &TTI,
- AliasAnalysis *AA, DominatorTree *DT, LoopInfo *LI,
- OptimizationRemarkEmitter *ORE)
- : Func(F), DL(F.getDataLayout()), TTI(TTI), AA(AA), DT(DT),
- LI(LI), ORE(ORE) {}
+ FunctionAnalysisManager *AM)
+ : Func(F), DL(F.getDataLayout()), TTI(TTI), AM(AM) {}
unsigned getNumOps(Type *VT) {
assert(isa<VectorType>(VT) && "Expected vector type");
@@ -974,6 +973,13 @@ class LowerMatrixIntrinsics {
if (WorkList.empty())
return false;
+ if (AM) {
+ ORE = &AM->getResult<OptimizationRemarkEmitterAnalysis>(Func);
+ AA = &AM->getResult<AAManager>(Func);
+ DT = &AM->getResult<DominatorTreeAnalysis>(Func);
+ LI = &AM->getResult<LoopAnalysis>(Func);
+ }
+
// Propagate shapes until nothing changes any longer.
while (!WorkList.empty()) {
WorkList = propagateShapeForward(WorkList);
@@ -2618,19 +2624,8 @@ class LowerMatrixIntrinsics {
PreservedAnalyses LowerMatrixIntrinsicsPass::run(Function &F,
FunctionAnalysisManager &AM) {
auto &TTI = AM.getResult<TargetIRAnalysis>(F);
- OptimizationRemarkEmitter *ORE = nullptr;
- AAResults *AA = nullptr;
- DominatorTree *DT = nullptr;
- LoopInfo *LI = nullptr;
-
- if (!Minimal) {
- ORE = &AM.getResult<OptimizationRemarkEmitterAnalysis>(F);
- AA = &AM.getResult<AAManager>(F);
- DT = &AM.getResult<DominatorTreeAnalysis>(F);
- LI = &AM.getResult<LoopAnalysis>(F);
- }
- LowerMatrixIntrinsics LMT(F, TTI, AA, DT, LI, ORE);
+ LowerMatrixIntrinsics LMT(F, TTI, Minimal ? nullptr : &AM);
if (LMT.Visit()) {
PreservedAnalyses PA;
if (!Minimal) {
More information about the llvm-commits
mailing list