| /llvm-project-15.0.7/llvm/lib/Analysis/ |
| H A D | MemorySSA.cpp | 105 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 D | MemorySSAUpdater.cpp | 572 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 D | MemorySSA.rst | 2 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 D | UserGuides.rst | 46 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 D | MemorySSATest.cpp | 51 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 D | MemorySSAUpdater.h | 56 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 D | MemorySSA.h | 211 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 D | LoopAnalysisManager.h | 42 class MemorySSA; variable 61 MemorySSA *MSSA;
|
| /llvm-project-15.0.7/llvm/lib/Target/AMDGPU/ |
| H A D | AMDGPUPromoteKernelArguments.cpp | 33 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 D | MemCpyOptimizer.h | 32 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 D | LoopUtils.h | 35 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 D | AMDGPUMemoryUtils.h | 24 class MemorySSA; variable 44 bool isClobberedInFunction(const LoadInst *Load, MemorySSA *MSSA,
|
| /llvm-project-15.0.7/llvm/test/Other/ |
| H A D | loop-mssa-not-preserved.ll | 3 ; 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 D | debugvalue2.ll | 3 ; 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 D | pr40509.ll | 7 ; This leads MemorySSA to finding a new (false) clobber for a previously 9 ; transformation will cause MemorySSA verification to fail.
|
| H A D | call-bitcast.ll | 3 ; Ensures that MemorySSA leverages the ground truth of the function being called when wrapped in a …
|
| H A D | simple_loop_unswitch_nontrivial.ll | 8 ; 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 D | loop-rotate-valuemap.ll | 5 ; otherwise, MemorySSA will assert.
|
| H A D | loop-rotate-disablebasicaa.ll | 3 …: 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 D | mssa-update-dead-def.ll | 3 ; 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 D | LoopSink.cpp | 230 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 D | LICM.cpp | 158 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 D | LoopInstSimplify.cpp | 75 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 D | preserve_memoryssa.ll | 7 ; 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 D | partial-unswitch-update-memoryssa.ll | 6 ; 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
|