Home
last modified time | relevance | path

Searched refs:MSSA (Results 1 – 25 of 37) sorted by relevance

12

/freebsd/contrib/llvm-project/llvm/lib/Analysis/
H A DMemorySSAUpdater.cpp46 if (!MSSA->DT->isReachableFromEntry(BB)) in getPreviousDefRecursive()
47 return MSSA->getLiveOnEntryDef(); in getPreviousDefRecursive()
61 MemoryAccess *Result = MSSA->createMemoryPhi(BB); in getPreviousDefRecursive()
76 if (MSSA->DT->isReachableFromEntry(Pred)) { in getPreviousDefRecursive()
84 PhiOps.push_back(MSSA->getLiveOnEntryDef()); in getPreviousDefRecursive()
89 MemoryPhi *Phi = dyn_cast_or_null<MemoryPhi>(MSSA->getMemoryAccess(BB)); in getPreviousDefRecursive()
104 Phi = MSSA->createMemoryPhi(BB); in getPreviousDefRecursive()
148 auto *Defs = MSSA->getWritableBlockDefs(MA->getBlock()); in getPreviousDefInBlock()
160 auto End = MSSA->getWritableBlockAccesses(MA->getBlock())->rend(); in getPreviousDefInBlock()
175 auto *Defs = MSSA in getPreviousDefFromEnd()
572 getNewDefiningAccessForClone(MemoryAccess * MA,const ValueToValueMapTy & VMap,PhiToDefMap & MPhiMap,bool CloneWasSimplified,MemorySSA * MSSA) getNewDefiningAccessForClone() argument
[all...]
H A DMemorySSA.cpp98 const MemorySSA *MSSA; member in __anon72856b230111::MemorySSAAnnotatedWriter
101 MemorySSAAnnotatedWriter(const MemorySSA *M) : MSSA(M) {} in MemorySSAAnnotatedWriter()
105 if (MemoryAccess *MA = MSSA->getMemoryAccess(BB)) in emitBasicBlockStartAnnot()
111 if (MemoryAccess *MA = MSSA->getMemoryAccess(I)) in emitInstructionAnnot()
119 MemorySSA *MSSA; member in __anon72856b230111::MemorySSAWalkerAnnotatedWriter
125 : MSSA(M), Walker(M->getWalker()), BAA(M->getAA()) {} in MemorySSAWalkerAnnotatedWriter()
129 if (MemoryAccess *MA = MSSA->getMemoryAccess(BB)) in emitBasicBlockStartAnnot()
135 if (MemoryAccess *MA = MSSA->getMemoryAccess(I)) { in emitInstructionAnnot()
140 if (MSSA->isLiveOnEntryDef(Clobber)) in emitInstructionAnnot()
398 const MemoryLocation &StartLoc, const MemorySSA &MSSA, in checkClobberSanity() argument
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DLoopInstSimplify.cpp74 MemorySSA *MSSA = MSSAU ? MSSAU->getMemorySSA() : nullptr; in simplifyLoopInst() local
79 MSSA->verifyMemorySSA(); in simplifyLoopInst()
135 if (MemoryAccess *MA = MSSA->getMemoryAccess(&I)) in simplifyLoopInst()
136 if (MemoryAccess *ReplacementMA = MSSA->getMemoryAccess(SimpleI)) in simplifyLoopInst()
155 MSSA->verifyMemorySSA(); in simplifyLoopInst()
177 if (AR.MSSA) { in run()
178 MSSAU = MemorySSAUpdater(AR.MSSA); in run()
180 AR.MSSA->verifyMemorySSA(); in run()
188 if (AR.MSSA) in run()
H A DLoopRotation.cpp76 if (AR.MSSA) in run()
77 MSSAU = MemorySSAUpdater(AR.MSSA); in run()
85 if (AR.MSSA && VerifyMemorySSA) in run()
86 AR.MSSA->verifyMemorySSA(); in run()
89 if (AR.MSSA) in run()
H A DLoopSink.cpp284 MemorySSA &MSSA, in sinkLoopInvariantInstructions() argument
301 MemorySSAUpdater MSSAU(&MSSA); in sinkLoopInvariantInstructions()
302 SinkAndHoistLICMFlags LICMFlags(/*IsSink=*/true, L, MSSA); in sinkLoopInvariantInstructions()
355 MemorySSA &MSSA = FAM.getResult<MemorySSAAnalysis>(F).getMSSA(); in run() local
375 Changed |= sinkLoopInvariantInstructions(L, AA, LI, DT, BFI, MSSA, in run()
387 MSSA.verifyMemorySSA(); in run()
413 MemorySSA &MSSA = getAnalysis<MemorySSAWrapperPass>().getMSSA(); runOnLoop() local
H A DMemCpyOptimizer.cpp318 static bool writtenBetween(MemorySSA *MSSA, BatchAAResults &AA, in writtenBetween() argument
338 MemoryAccess *Clobber = MSSA->getWalker()->getClobberingMemoryAccess( in writtenBetween()
340 return !MSSA->dominates(Clobber, Start); in writtenBetween()
723 MSSA->getWalker()->getClobberingMemoryAccess(LI, BAA))) in processStoreOfLoad()
822 auto *StoreDef = cast<MemoryDef>(MSSA->getMemoryAccess(SI)); in processStore()
918 if (accessedBetween(BAA, DestLoc, MSSA->getMemoryAccess(C), in performCallSlotOptzn()
919 MSSA->getMemoryAccess(cpyStore), &SkippedLifetimeStart)) { in performCallSlotOptzn()
1111 MSSAU->moveBefore(MSSA->getMemoryAccess(SkippedLifetimeStart), in performCallSlotOptzn()
1112 MSSA->getMemoryAccess(C)); in performCallSlotOptzn()
1210 if (writtenBetween(MSSA, BAA, MCopyLoc, MSSA->getMemoryAccess(MDep), in processMemCpyMemCpyDependence()
[all …]
H A DLICM.cpp187 static bool pointerInvalidatedByLoop(MemorySSA *MSSA, MemoryUse *MU,
191 static bool pointerInvalidatedByBlock(BasicBlock &BB, MemorySSA &MSSA,
209 static void foreachMemoryAccess(MemorySSA *MSSA, Loop *L,
214 collectPromotionCandidates(MemorySSA *MSSA, AliasAnalysis *AA, Loop *L);
220 TargetTransformInfo *TTI, ScalarEvolution *SE, MemorySSA *MSSA,
257 MemorySSA *MSSA = &getAnalysis<MemorySSAWrapperPass>().getMSSA(); in runOnLoop() local
269 SE ? &SE->getSE() : nullptr, MSSA, &ORE); in runOnLoop()
296 if (!AR.MSSA) in run()
308 &AR.SE, AR.MSSA, &ORE)) in run()
330 if (!AR.MSSA) in run()
[all …]
H A DLoopDeletion.cpp400 LoopInfo &LI, MemorySSA *MSSA, in breakBackedgeIfNotTaken() argument
418 breakLoopBackedge(L, DT, SE, LI, MSSA); in breakBackedgeIfNotTaken()
438 MemorySSA *MSSA, in deleteLoopIfDead() argument
478 deleteDeadLoop(L, &DT, &SE, &LI, MSSA); in deleteLoopIfDead()
511 deleteDeadLoop(L, &DT, &SE, &LI, MSSA); in deleteLoopIfDead()
528 auto Result = deleteLoopIfDead(&L, AR.DT, AR.SE, AR.LI, AR.MSSA, ORE); in run()
535 AR.MSSA, ORE)); in run()
544 if (AR.MSSA) in run()
H A DGVNHoist.cpp247 MemoryDependenceResults *MD, MemorySSA *MSSA) in GVNHoist() argument
248 : DT(DT), PDT(PDT), AA(AA), MD(MD), MSSA(MSSA), in GVNHoist()
249 MSSAUpdater(std::make_unique<MemorySSAUpdater>(MSSA)) { in GVNHoist()
250 MSSA->ensureOptimizedUses(); in GVNHoist()
269 MemorySSA *MSSA; member in llvm::GVNHoist
588 const MemorySSA::AccessList *Acc = MSSA->getBlockAccesses(BB); in hasMemoryUse()
724 if (NewBB == DBB && !MSSA->isLiveOnEntryDef(D)) in safeToHoistLdSt()
741 assert(MSSA->locallyDominates(D, U)); in safeToHoistLdSt()
777 if (MemoryUseOrDef *UD = MSSA->getMemoryAccess(Insn)) in checkSafety()
982 MemoryAccess *OldMA = MSSA->getMemoryAccess(I); in rauw()
[all …]
H A DDeadStoreElimination.cpp823 MemorySSA &MSSA; member
869 DSEState(Function &F, AliasAnalysis &AA, MemorySSA &MSSA, DominatorTree &DT, in DSEState()
872 : F(F), AA(AA), EI(DT, &LI), BatchAA(AA, &EI), MSSA(MSSA), DT(DT), in DSEState()
880 MemoryAccess *MA = MSSA.getMemoryAccess(&I); in DSEState()
1355 if (!MSSA.isLiveOnEntryDef(Current) && isa<MemoryUseOrDef>(Current)) in getDomMemoryDef()
1362 if (MSSA.isLiveOnEntryDef(Current)) { in getDomMemoryDef()
1422 return !MSSA.dominates(StartAccess, UseOrDef) && in getDomMemoryDef()
1700 MemorySSAUpdater Updater(&MSSA); in deleteDeadInstruction()
1714 MemoryAccess *MA = MSSA.getMemoryAccess(DeadInst); in deleteDeadInstruction()
1879 auto *MallocDef = dyn_cast_or_null<MemoryDef>(MSSA.getMemoryAccess(Malloc)); in tryFoldIntoCalloc()
[all …]
H A DLoopPassManager.cpp222 MemorySSA *MSSA = in run() local
240 MSSA}; in run()
314 if (LAR.MSSA && !PassPA.getChecker<MemorySSAAnalysis>().preserved()) in run()
327 if (LAR.MSSA && VerifyMemorySSA) in run()
328 LAR.MSSA->verifyMemorySSA(); in run()
H A DEarlyCSE.cpp647 MemorySSA *MSSA; member in __anon2439b80b0411::EarlyCSE
734 AssumptionCache &AC, MemorySSA *MSSA) in EarlyCSE() argument
735 : TLI(TLI), TTI(TTI), DT(DT), AC(AC), SQ(DL, &TLI, &DT, &AC), MSSA(MSSA), in EarlyCSE()
736 MSSAUpdater(std::make_unique<MemorySSAUpdater>(MSSA)) {} in EarlyCSE()
1099 if (!MSSA) in removeMSSA()
1102 MSSA->verifyMemorySSA(); in removeMSSA()
1139 if (!MSSA) in isSameMemGeneration()
1149 auto *EarlierMA = MSSA->getMemoryAccess(EarlierInst); in isSameMemGeneration()
1152 auto *LaterMA = MSSA->getMemoryAccess(LaterInst); in isSameMemGeneration()
1162 LaterDef = MSSA->getWalker()->getClobberingMemoryAccess(LaterInst); in isSameMemGeneration()
[all …]
H A DLoopFlatten.cpp1002 if (AR.MSSA) { in run()
1003 MSSAU = MemorySSAUpdater(AR.MSSA); in run()
1005 AR.MSSA->verifyMemorySSA(); in run()
1026 if (AR.MSSA && VerifyMemorySSA) in run()
1027 AR.MSSA->verifyMemorySSA(); in run()
1030 if (AR.MSSA) in run()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DMoveAutoInit.cpp64 DominatorTree &DT, MemorySSA &MSSA) { in usersDominator()
66 MemoryUseOrDef &IMA = *MSSA.getMemoryAccess(I); in usersDominator()
67 BatchAAResults AA(MSSA.getAA()); in usersDominator()
106 static bool runMoveAutoInit(Function &F, DominatorTree &DT, MemorySSA &MSSA) {
124 BasicBlock *UsersDominator = usersDominator(ML.value(), &I, DT, MSSA); in runMoveAutoInit()
202 MemorySSAUpdater MSSAU(&MSSA); in runMoveAutoInit()
209 MSSAU.moveToPlace(MSSA.getMemoryAccess(Job.first), Job.first->getParent(), in runMoveAutoInit()
214 MSSA.verifyMemorySSA(); in runMoveAutoInit()
225 auto &MSSA = AM.getResult<MemorySSAAnalysis>(F).getMSSA(); in run()
226 if (!runMoveAutoInit(F, DT, MSSA)) in run()
65 usersDominator(const MemoryLocation & ML,Instruction * I,DominatorTree & DT,MemorySSA & MSSA) usersDominator() argument
107 runMoveAutoInit(Function & F,DominatorTree & DT,MemorySSA & MSSA) runMoveAutoInit() argument
222 auto &MSSA = AM.getResult<MemorySSAAnalysis>(F).getMSSA(); run() local
[all...]
H A DLoopUnroll.cpp264 MemorySSA *MSSA = GetMSSA(); in getMatchingValue() local
265 if (!MSSA) in getMatchingValue()
267 auto *EarlierMA = MSSA->getMemoryAccess(LV.DefI); in getMatchingValue()
269 MSSA->getWalker()->getClobberingMemoryAccess(LI, BAA); in getMatchingValue()
270 if (!MSSA->dominates(LaterDef, EarlierMA)) in getMatchingValue()
365 std::unique_ptr<MemorySSA> MSSA = nullptr; in simplifyLoopAfterUnroll() local
367 loadCSE(L, *DT, *SE, *LI, BAA, [L, AA, DT, &MSSA]() -> MemorySSA * { in simplifyLoopAfterUnroll()
368 if (!MSSA) in simplifyLoopAfterUnroll()
369 MSSA.reset(new MemorySSA(*L, AA, DT)); in simplifyLoopAfterUnroll()
370 return &*MSSA; in simplifyLoopAfterUnroll()
H A DLoopUtils.cpp484 LoopInfo *LI, MemorySSA *MSSA) { in deleteDeadLoop() argument
490 if (MSSA) in deleteDeadLoop()
491 MSSAU = std::make_unique<MemorySSAUpdater>(MSSA); in deleteDeadLoop()
570 if (MSSA) { in deleteDeadLoop()
574 MSSA->verifyMemorySSA(); in deleteDeadLoop()
594 if (MSSA) { in deleteDeadLoop()
601 MSSA->verifyMemorySSA(); in deleteDeadLoop()
688 if (MSSA && VerifyMemorySSA) in deleteDeadLoop()
689 MSSA->verifyMemorySSA(); in deleteDeadLoop()
725 LoopInfo &LI, MemorySSA *MSSA) { in breakLoopBackedge() argument
[all …]
H A DLoopSimplify.cpp802 MemorySSA *MSSA = nullptr; in runOnFunction() local
806 MSSA = &MSSAAnalysis->getMSSA(); in runOnFunction()
807 MSSAU = std::make_unique<MemorySSAUpdater>(MSSA); in runOnFunction()
836 auto *MSSA = &MSSAAnalysis->getMSSA(); in run() local
837 MSSAU = std::make_unique<MemorySSAUpdater>(MSSA); in run()
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/
H A DAMDGPUPromoteKernelArguments.cpp33 MemorySSA *MSSA; member in __anon4eb9f4ae0111::AMDGPUPromoteKernelArguments
52 bool run(Function &F, MemorySSA &MSSA, AliasAnalysis &AA);
79 !AMDGPU::isClobberedInFunction(LD, MSSA, AA)) in enqueueUsers()
153 bool AMDGPUPromoteKernelArguments::run(Function &F, MemorySSA &MSSA, in run() argument
163 this->MSSA = &MSSA; in run()
189 MemorySSA &MSSA = getAnalysis<MemorySSAWrapperPass>().getMSSA(); in runOnFunction() local
191 return run(F, MSSA, AA); in runOnFunction()
210 MemorySSA &MSSA = AM.getResult<MemorySSAAnalysis>(F).getMSSA(); in run() local
212 if (AMDGPUPromoteKernelArguments().run(F, MSSA, AA)) { in run()
H A DAMDGPUAnnotateUniformValues.cpp33 MemorySSA *MSSA; member in __anon408c60bb0111::AMDGPUAnnotateUniformValues
99 if (GlobalLoad && !AMDGPU::isClobberedInFunction(&I, MSSA, AA)) in visitLoadInst()
112 MSSA = &getAnalysis<MemorySSAWrapperPass>().getMSSA(); in runOnFunction()
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DMemorySSAUpdater.h56 MemorySSA *MSSA;
66 MemorySSAUpdater(MemorySSA *MSSA) : MSSA(MSSA) {} in MemorySSAUpdater() argument
185 /// which will perform all the necessary MSSA updates. If these APIs are used,
220 if (MemoryAccess *MA = MSSA->getMemoryAccess(I))
239 MemorySSA* getMemorySSA() const { return MSSA; }
H A DMemorySSA.h938 Result(std::unique_ptr<MemorySSA> &&MSSA) : MSSA(std::move(MSSA)) {}
940 MemorySSA &getMSSA() { return *MSSA; }
942 std::unique_ptr<MemorySSA> MSSA;
993 MemorySSA &getMSSA() { return *MSSA; }
994 const MemorySSA &getMSSA() const { return *MSSA; }
1002 std::unique_ptr<MemorySSA> MSSA;
1047 MemoryAccess *MA = MSSA->getMemoryAccess(I);
1073 BatchAAResults BAA(MSSA->getAA());
1078 BatchAAResults BAA(MSSA->getAA());
1084 BatchAAResults BAA(MSSA->getAA());
[all …]
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/
H A DLoopUtils.h125 Loop &L, MemorySSA &MSSA);
127 SinkAndHoistLICMFlags(bool IsSink, Loop &L, MemorySSA &MSSA);
200 LoopInfo *LI, MemorySSA *MSSA = nullptr);
206 LoopInfo &LI, MemorySSA *MSSA);
576 const MemorySSA &MSSA,
/freebsd/contrib/llvm-project/llvm/lib/CodeGen/
H A DInterleavedLoadCombinePass.cpp66 InterleavedLoadCombineImpl(Function &F, DominatorTree &DT, MemorySSA &MSSA, in InterleavedLoadCombineImpl()
69 : F(F), DT(DT), MSSA(MSSA), in InterleavedLoadCombineImpl()
84 MemorySSA &MSSA; member
1190 auto FMA = MSSA.getMemoryAccess(First); in combine()
1192 auto MADef = MSSA.getMemoryAccess(LI)->getDefiningAccess(); in combine()
1193 if (!MSSA.dominates(MADef, FMA)) in combine()
1226 auto MSSAU = MemorySSAUpdater(&MSSA); in combine()
1228 LI, nullptr, MSSA.getMemoryAccess(InsertionPoint))); in combine()
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Scalar/
H A DMemCpyOptimizer.h49 MemorySSA *MSSA = nullptr; variable
60 MemorySSA *MSSA);
/freebsd/contrib/llvm-project/llvm/lib/Target/AMDGPU/Utils/
H A DAMDGPUMemoryUtils.cpp325 bool isClobberedInFunction(const LoadInst *Load, MemorySSA *MSSA, in isClobberedInFunction() argument
327 MemorySSAWalker *Walker = MSSA->getWalker(); in isClobberedInFunction()
347 if (MSSA->isLiveOnEntryDef(MA)) in isClobberedInFunction()

12