Home
last modified time | relevance | path

Searched refs:MemorySSA (Results 1 – 25 of 61) sorted by relevance

123

/llvm-project-15.0.7/llvm/lib/Analysis/
H A DMemorySSA.cpp105 const MemorySSA *MSSA;
126 MemorySSA *MSSA;
540 const MemorySSA &MSSA;
1034 MemorySSA *MSSA;
1273 MemorySSA::MemorySSA(Function &Func, AliasAnalysis *AA, DominatorTree *DT) in MemorySSA() function in MemorySSA
1291 MemorySSA::~MemorySSA() { in ~MemorySSA()
1298 MemorySSA::AccessList *MemorySSA::getOrCreateAccessList(const BasicBlock *BB) { in getOrCreateAccessList()
1306 MemorySSA::DefsList *MemorySSA::getOrCreateDefsList(const BasicBlock *BB) { in getOrCreateDefsList()
1354 MemorySSA *MSSA;
1538 void MemorySSA::placePHINodes( in placePHINodes()
[all …]
H A DMemorySSAUpdater.cpp572 MemorySSA *MSSA) { in getNewDefiningAccessForClone()
609 const MemorySSA::AccessList *Acc = MSSA->getBlockAccesses(BB); in cloneUsesAndDefs()
872 MemorySSA::DefsList *Defs = MSSA->getWritableBlockDefs(BB); in applyInsertUpdates()
1201 MemorySSA::InsertionPlace Where) { in moveToPlace()
1202 if (Where != MemorySSA::InsertionPlace::BeforeTerminator) in moveToPlace()
1208 return moveTo(What, BB, MemorySSA::InsertionPlace::End); in moveToPlace()
1215 MemorySSA::AccessList *Accs = MSSA->getWritableBlockAccesses(From); in moveAllAccesses()
1231 MSSA->moveTo(MUD, To, MemorySSA::End); in moveAllAccesses()
1279 MSSA->moveTo(Phi, New, MemorySSA::Beginning); in wireOldPredecessorsToNewImmediatePredecessor()
1392 MemorySSA::AccessList *Acc = MSSA->getWritableBlockAccesses(BB); in removeBlocks()
[all …]
/llvm-project-15.0.7/llvm/docs/
H A DMemorySSA.rst2 MemorySSA title
11 ``MemorySSA`` is an analysis that allows us to cheaply reason about the
27 This document goes over how ``MemorySSA`` is structured, and some basic
28 intuition on how ``MemorySSA`` works.
34 GCC's, LLVM's MemorySSA is intraprocedural.
37 MemorySSA Structure
40 MemorySSA is a virtual IR. After it's built, ``MemorySSA`` will contain a
42 ``MemorySSA``'s parallel to LLVM ``Instruction``\ s.
190 Design of MemorySSA
279 restricted ``MemorySSA`` to one operand per access.
[all …]
H A DUserGuides.rst46 MemorySSA
140 :doc:`MemorySSA`
141 Information about the MemorySSA utility in LLVM, as well as how to use it.
/llvm-project-15.0.7/llvm/unittests/Analysis/
H A DMemorySSATest.cpp51 std::unique_ptr<MemorySSA> MSSA;
95 MemorySSA &MSSA = *Analyses->MSSA; in TEST_F()
134 MemorySSA &MSSA = *Analyses->MSSA; in TEST_F()
224 MemorySSA &MSSA = *Analyses->MSSA; in TEST_F()
275 MemorySSA &MSSA = *Analyses->MSSA; in TEST_F()
319 MemorySSA &MSSA = *Analyses->MSSA; in TEST_F()
355 MemorySSA &MSSA = *Analyses->MSSA; in TEST_F()
401 MemorySSA &MSSA = *Analyses->MSSA; in TEST_F()
445 MemorySSA &MSSA = *Analyses->MSSA; in TEST_F()
500 MemorySSA &MSSA = *Analyses->MSSA; in TEST_F()
[all …]
/llvm-project-15.0.7/llvm/include/llvm/Analysis/
H A DMemorySSAUpdater.h56 MemorySSA *MSSA;
66 MemorySSAUpdater(MemorySSA *MSSA) : MSSA(MSSA) {} in MemorySSAUpdater()
131 MemorySSA::InsertionPlace Where);
192 MemorySSA::InsertionPlace Point);
242 MemorySSA* getMemorySSA() const { return MSSA; } in getMemorySSA()
H A DMemorySSA.h211 friend class MemorySSA; variable
287 friend class MemorySSA;
365 friend class MemorySSA;
388 friend class MemorySSA;
649 friend class MemorySSA;
714 class MemorySSA {
720 MemorySSA(MemorySSA &&) = delete;
722 ~MemorySSA();
1015 std::unique_ptr<MemorySSA> MSSA;
1031 MemorySSAWalker(MemorySSA *);
[all …]
H A DLoopAnalysisManager.h42 class MemorySSA; variable
61 MemorySSA *MSSA;
/llvm-project-15.0.7/llvm/lib/Target/AMDGPU/
H A DAMDGPUPromoteKernelArguments.cpp33 MemorySSA *MSSA;
52 bool run(Function &F, MemorySSA &MSSA, AliasAnalysis &AA);
153 bool AMDGPUPromoteKernelArguments::run(Function &F, MemorySSA &MSSA, in run()
189 MemorySSA &MSSA = getAnalysis<MemorySSAWrapperPass>().getMSSA(); in runOnFunction()
210 MemorySSA &MSSA = AM.getResult<MemorySSAAnalysis>(F).getMSSA(); in run()
/llvm-project-15.0.7/llvm/include/llvm/Transforms/Scalar/
H A DMemCpyOptimizer.h32 class MemorySSA; variable
44 MemorySSA *MSSA = nullptr;
54 AssumptionCache *AC, DominatorTree *DT, MemorySSA *MSSA);
/llvm-project-15.0.7/llvm/include/llvm/Transforms/Utils/
H A DLoopUtils.h35 class MemorySSA; variable
120 Loop *L = nullptr, MemorySSA *MSSA = nullptr);
123 MemorySSA *MSSA = nullptr);
192 LoopInfo *LI, MemorySSA *MSSA = nullptr);
198 LoopInfo &LI, MemorySSA *MSSA);
547 MemorySSA &MSSA, AAResults &AA);
/llvm-project-15.0.7/llvm/lib/Target/AMDGPU/Utils/
H A DAMDGPUMemoryUtils.h24 class MemorySSA; variable
44 bool isClobberedInFunction(const LoadInst *Load, MemorySSA *MSSA,
/llvm-project-15.0.7/llvm/test/Other/
H A Dloop-mssa-not-preserved.ll3 ; CHECK: LLVM ERROR: Loop pass manager using MemorySSA contains a pass that does not preserve Memor…
/llvm-project-15.0.7/llvm/test/Analysis/MemorySSA/
H A Ddebugvalue2.ll3 ; Note that the test crashes the MemorySSA verification when doing loop-rotate,
4 ; if debuginfo is modelled in MemorySSA, due to the fact that MemorySSA is not
H A Dpr40509.ll7 ; This leads MemorySSA to finding a new (false) clobber for a previously
9 ; transformation will cause MemorySSA verification to fail.
H A Dcall-bitcast.ll3 ; Ensures that MemorySSA leverages the ground truth of the function being called when wrapped in a …
H A Dsimple_loop_unswitch_nontrivial.ll8 ; In Test1, there are no definitions. MemorySSA updates insert trivial phis and remove them.
62 ; Ensure MemorySSA remains correct. Due to SLU's pruned cloning, continue.us2 becomes unreachable, …
H A Dloop-rotate-valuemap.ll5 ; otherwise, MemorySSA will assert.
H A Dloop-rotate-disablebasicaa.ll3 …: if @foo is modelled as a MemoryDef, this test will assert with -loop-rotate, due to MemorySSA not
/llvm-project-15.0.7/llvm/test/Transforms/GVN/
H A Dmssa-update-dead-def.ll3 ; This is a regression test for a bug in MemorySSA updater.
4 ; Make sure that we don't crash and end up with a valid MemorySSA.
/llvm-project-15.0.7/llvm/lib/Transforms/Scalar/
H A DLoopSink.cpp230 MSSAU->createMemoryAccessInBB(IC, nullptr, N, MemorySSA::Beginning); in sinkInstruction()
258 MSSAU->moveToPlace(OldMemAcc, MoveBB, MemorySSA::Beginning); in sinkInstruction()
268 MemorySSA &MSSA, in sinkLoopInvariantInstructions()
333 MemorySSA &MSSA = FAM.getResult<MemorySSAAnalysis>(F).getMSSA(); in run()
396 MemorySSA &MSSA = getAnalysis<MemorySSAWrapperPass>().getMSSA(); in runOnLoop()
H A DLICM.cpp158 static bool pointerInvalidatedByLoop(MemorySSA *MSSA, MemoryUse *MU,
161 static bool pointerInvalidatedByBlock(BasicBlock &BB, MemorySSA &MSSA,
174 static void foreachMemoryAccess(MemorySSA *MSSA, Loop *L,
177 collectPromotionCandidates(MemorySSA *MSSA, AliasAnalysis *AA, Loop *L);
218 MemorySSA *MSSA = &getAnalysis<MemorySSAWrapperPass>().getMSSA(); in runOnLoop()
354 MemorySSA *MSSA) in SinkAndHoistLICMFlags()
360 Loop *L, MemorySSA *MSSA) in SinkAndHoistLICMFlags()
1146 MemorySSA *MSSA = MSSAU.getMemorySSA(); in canSinkOrHoistInst()
1430 New, nullptr, New->getParent(), MemorySSA::Beginning); in cloneInstructionInExitBlock()
2197 static void foreachMemoryAccess(MemorySSA *MSSA, Loop *L, in foreachMemoryAccess()
[all …]
H A DLoopInstSimplify.cpp75 MemorySSA *MSSA = MSSAU ? MSSAU->getMemorySSA() : nullptr; in simplifyLoopInst()
195 MemorySSA *MSSA = &getAnalysis<MemorySSAWrapperPass>().getMSSA(); in runOnLoop()
/llvm-project-15.0.7/llvm/test/Transforms/EarlyCSE/X86/
H A Dpreserve_memoryssa.ll7 ; Tests below highlight scenarios where EarlyCSE does not preserve MemorySSA
8 ; optimized accesses. Current MemorySSA verify will accept these.
57 ; MemorySSA from being tripped by AA (see test4).
84 ; The only fail-safe way to actually preserve MemorySSA when removing or
85 ; replacing instructions (i.e. get the *same* MemorySSA as if it was computed
88 ; optimized further if we were to re-run MemorySSA on the IR.
/llvm-project-15.0.7/llvm/test/Transforms/SimpleLoopUnswitch/
H A Dpartial-unswitch-update-memoryssa.ll6 ; Check that MemorySSA updating can deal with a clobbering access of a
42 ; Check that MemorySSA updating can deal with skipping defining accesses in the

123