/external/swiftshader/third_party/llvm-7.0/llvm/lib/Analysis/ |
D | MemorySSAUpdater.cpp | 78 MemoryPhi *Phi = dyn_cast_or_null<MemoryPhi>(MSSA->getMemoryAccess(BB)); in getPreviousDefRecursive() 171 if (MemoryPhi *UsePhi = dyn_cast<MemoryPhi>(&*U)) { in recursePhi() 185 MemoryAccess *MemorySSAUpdater::tryRemoveTrivialPhi(MemoryPhi *Phi, in tryRemoveTrivialPhi() 229 static void setMemoryPhiValueForBlock(MemoryPhi *MP, const BasicBlock *BB, in setMemoryPhiValueForBlock() 318 MemoryPhi *Phi = dyn_cast_or_null<MemoryPhi>(MP); in insertDef() 337 if (MemoryPhi *Phi = dyn_cast<MemoryPhi>(NewDef)) in fixupDefs() 364 assert(!isa<MemoryPhi>(FirstDef) && in fixupDefs() 401 if (MemoryPhi *PhiUser = dyn_cast<MemoryPhi>(U)) in moveTo() 472 if (MemoryPhi *MPhi = MSSA->getMemoryAccess(Succ)) in moveAllAfterSpliceBlocks() 482 if (MemoryPhi *MPhi = MSSA->getMemoryAccess(Succ)) in moveAllAfterMergeBlocks() [all …]
|
D | MemorySSA.cpp | 433 assert(isa<MemoryPhi>(MA)); in checkClobberSanity() 440 assert((isa<MemoryPhi>(ClobberAt) || FoundClobber) && in checkClobberSanity() 481 const MemoryAccess *getWalkTarget(const MemoryPhi *From) const { in getWalkTarget() 529 assert(isa<MemoryPhi>(Desc.Last) && in walkToPhiOrClobber() 534 void addSearches(MemoryPhi *Phi, SmallVectorImpl<ListIndex> &PausedSearches, in addSearches() 616 addSearches(cast<MemoryPhi>(Res.Result), PausedSearches, PathIndex); in getBlockingAccess() 691 OptznResult tryOptimizePhi(MemoryPhi *Phi, MemoryAccess *Start, in tryOptimizePhi() 720 MemoryPhi *Current = Phi; in tryOptimizePhi() 827 auto *DefChainPhi = cast<MemoryPhi>(DefChainEnd); in tryOptimizePhi() 874 OptznResult OptRes = tryOptimizePhi(cast<MemoryPhi>(FirstDesc.Last), in findClobber() [all …]
|
/external/swiftshader/third_party/llvm-7.0/llvm/test/Analysis/MemorySSA/ |
D | phi-translation.ll | 23 ; CHECK: 3 = MemoryPhi({entry,1},{if.then,2}) 48 ; CHECK: 7 = MemoryPhi({entry,1},{if.then,2}) 55 ; CHECK: 5 = MemoryPhi({if.then,2},{phi.3,3}) 64 ; CHECK: 6 = MemoryPhi({phi.2,4},{phi.3,3}) 94 ; CHECK: 6 = MemoryPhi({a,2},{b,3}) 101 ; CHECK: 7 = MemoryPhi({a,2},{b,3}) 108 ; 8 = MemoryPhi({c,4},{d,5}) 123 ; CHECK: 6 = MemoryPhi({%0,1},{loop.3,4}) 130 ; CHECK: 5 = MemoryPhi({loop.1,2},{loop.3,4}) 137 ; CHECK: 7 = MemoryPhi({loop.1,2},{loop.2,3}) [all …]
|
D | cyclicphi.ll | 14 ; CHECK: 3 = MemoryPhi({%0,liveOnEntry},{bb77,2}) 28 ; CHECK: 2 = MemoryPhi({bb26,3},{bb68,1}) 44 ; CHECK: 3 = MemoryPhi({%0,liveOnEntry},{bb77,2}) 58 ; CHECK: 2 = MemoryPhi({bb26,3},{bb68,1}) 74 ; CHECK: 3 = MemoryPhi({%0,liveOnEntry},{bb77,2}) 88 ; CHECK: 2 = MemoryPhi({bb26,3},{bb68,1}) 103 ; CHECK: 3 = MemoryPhi({%0,liveOnEntry},{bb77,2}) 119 ; CHECK: 4 = MemoryPhi({bb26,3},{bb68,1}) 134 ; CHECK: 3 = MemoryPhi({%0,liveOnEntry},{bb77,2}) 150 ; CHECK: 2 = MemoryPhi({bb26,3},{bb68,1})
|
D | many-dom-backedge.ll | 14 ; CHECK: 9 = MemoryPhi({entry,liveOnEntry},{sw.epilog,6}) 44 ; CHECK: 10 = MemoryPhi({loopbegin,9},{sw.almostexit,6}) 57 ; CHECK: 8 = MemoryPhi({sw.default,5},{sw.bb3,4},{sw.bb,1},{sw.bb1,2},{sw.bb2,3})
|
D | multi-edges.ll | 16 ; CHECK: 4 = MemoryPhi({entry,1},{Loop.End,3}) 23 ; CHECK: 3 = MemoryPhi({entry,1},{Loop.Body,2},{Loop.Body,2})
|
D | many-doms.ll | 13 ; CHECK: 8 = MemoryPhi({entry,liveOnEntry},{sw.epilog,6}) 55 ; CHECK: 7 = MemoryPhi({sw.default,5},{sw.bb,1},{sw.bb1,2},{sw.bb2,3},{sw.bb3,4})
|
D | multiple-backedges-hal.ll | 45 ; CHECK: 5 = MemoryPhi({Entry,1},{InnerLoop.Tail,3}) 55 ; CHECK: 4 = MemoryPhi({OuterLoop,2},{InnerLoop,3})
|
D | invariant-groups.ll | 153 ; 5 = MemoryPhi({entry,3},{Loop.Body,4},{Loop.End,6}) 169 ; 6 = MemoryPhi({entry,3},{Loop.Body,4}) 200 ; CHECK: 8 = MemoryPhi({entry,3},{Loop.Body,4},{Loop.next,5},{Loop.End,6}) 228 ; CHECK: 7 = MemoryPhi({entry,3},{Loop.next,5}) 266 ; CHECK: 6 = MemoryPhi({Loop.Pre,3},{Loop.Body,4},{Loop.End,5}) 281 ; CHECK: 5 = MemoryPhi({entry,3},{Loop.Body,4})
|
D | forward-unreachable.ll | 19 ; CHECK: 3 = MemoryPhi({split1,1},{split2,liveOnEntry},{forwardunreachable,liveOnEntry})
|
/external/llvm/test/Transforms/Util/MemorySSA/ |
D | phi-translation.ll | 23 ; CHECK: 3 = MemoryPhi({entry,1},{if.then,2}) 48 ; CHECK: 6 = MemoryPhi({entry,1},{if.then,2}) 55 ; CHECK: 5 = MemoryPhi({if.then,2},{phi.3,3}) 64 ; CHECK: 7 = MemoryPhi({phi.2,4},{phi.3,3}) 94 ; CHECK: 6 = MemoryPhi({a,2},{b,3}) 101 ; CHECK: 7 = MemoryPhi({a,2},{b,3}) 108 ; 8 = MemoryPhi({c,4},{d,5}) 123 ; CHECK: 7 = MemoryPhi({%0,1},{loop.3,4}) 130 ; CHECK: 6 = MemoryPhi({loop.1,2},{loop.3,4}) 137 ; CHECK: 5 = MemoryPhi({loop.1,2},{loop.2,3}) [all …]
|
D | cyclicphi.ll | 14 ; CHECK: 3 = MemoryPhi({%0,liveOnEntry},{bb77,2}) 28 ; CHECK: 2 = MemoryPhi({bb26,3},{bb68,1}) 44 ; CHECK: 3 = MemoryPhi({%0,liveOnEntry},{bb77,2}) 58 ; CHECK: 2 = MemoryPhi({bb26,3},{bb68,1}) 74 ; CHECK: 4 = MemoryPhi({%0,liveOnEntry},{bb77,2}) 90 ; CHECK: 3 = MemoryPhi({bb26,4},{bb68,1}) 105 ; CHECK: 3 = MemoryPhi({%0,liveOnEntry},{bb77,2}) 121 ; CHECK: 2 = MemoryPhi({bb26,3},{bb68,1})
|
D | livein.ll | 13 ; CHECK-NOT: 2 = MemoryPhi 27 ; CHECK: 2 = MemoryPhi({left,1},{right,liveOnEntry}) 48 ; CHECK: 4 = MemoryPhi({%0,1},{if.then,2})
|
D | many-dom-backedge.ll | 14 ; CHECK: 9 = MemoryPhi({entry,liveOnEntry},{sw.epilog,6}) 44 ; CHECK: 10 = MemoryPhi({loopbegin,9},{sw.almostexit,6}) 57 ; CHECK: 8 = MemoryPhi({sw.default,5},{sw.bb3,4},{sw.bb,1},{sw.bb1,2},{sw.bb2,3})
|
D | multi-edges.ll | 16 ; CHECK: 4 = MemoryPhi({entry,1},{Loop.End,3}) 23 ; CHECK: 3 = MemoryPhi({entry,1},{Loop.Body,2},{Loop.Body,2})
|
D | many-doms.ll | 13 ; CHECK: 8 = MemoryPhi({entry,liveOnEntry},{sw.epilog,6}) 55 ; CHECK: 7 = MemoryPhi({sw.default,5},{sw.bb,1},{sw.bb1,2},{sw.bb2,3},{sw.bb3,4})
|
D | multiple-backedges-hal.ll | 45 ; CHECK: 5 = MemoryPhi({Entry,1},{InnerLoop.Tail,3}) 55 ; CHECK: 4 = MemoryPhi({OuterLoop,2},{InnerLoop,3})
|
D | forward-unreachable.ll | 19 ; CHECK: 3 = MemoryPhi({split1,1},{split2,liveOnEntry},{forwardunreachable,liveOnEntry})
|
/external/llvm/lib/Transforms/Utils/ |
D | MemorySSA.cpp | 210 if (It == PerBlockAccesses.end() || !isa<MemoryPhi>(It->second->front())) in renameBlock() 213 auto *Phi = cast<MemoryPhi>(&Accesses->front()); in renameBlock() 272 if (It == PerBlockAccesses.end() || !isa<MemoryPhi>(It->second->front())) in markUnreachableAsLiveOnEntry() 275 auto *Phi = cast<MemoryPhi>(&Accesses->front()); in markUnreachableAsLiveOnEntry() 409 MemoryPhi *Phi = new MemoryPhi(BB->getContext(), BB, NextID++); in buildMemorySSA() 455 MemoryPhi *MemorySSA::createMemoryPhi(BasicBlock *BB) { in createMemoryPhi() 458 MemoryPhi *Phi = new MemoryPhi(BB->getContext(), BB, NextID++); in createMemoryPhi() 486 [](const MemoryAccess &MA) { return !isa<MemoryPhi>(MA); }); in createMemoryAccessInBB() 554 if (MemoryPhi *Phi = getMemoryAccess(UseBlock)) in findDominatingDef() 567 if (isa<MemoryDef>(RA) || isa<MemoryPhi>(RA)) in findDominatingDef() [all …]
|
/external/llvm/include/llvm/Transforms/Utils/ |
D | MemorySSA.h | 158 friend class MemoryPhi; variable 354 class MemoryPhi final : public MemoryAccess { 363 MemoryPhi(LLVMContext &C, BasicBlock *BB, unsigned Ver, unsigned NumPreds = 0) 452 static inline bool classof(const MemoryPhi *) { return true; } 487 template <> struct OperandTraits<MemoryPhi> : public HungoffOperandTraits<2> {}; 488 DEFINE_TRANSPARENT_OPERAND_ACCESSORS(MemoryPhi, MemoryAccess) 507 MemoryPhi *getMemoryAccess(const BasicBlock *BB) const; 538 MemoryPhi *createMemoryPhi(BasicBlock *BB); 790 MemoryPhi *MP = dyn_cast<MemoryPhi>(Access); 798 if (MemoryPhi *MP = dyn_cast<MemoryPhi>(Access)) [all …]
|
/external/swiftshader/third_party/llvm-7.0/llvm/docs/ |
D | MemorySSA.rst | 44 - ``MemoryPhi`` 48 ``MemoryPhi``\ s are ``PhiNode``\ s, but for memory operations. If at any 51 ``MemoryPhi``. As in LLVM IR, ``MemoryPhi``\ s don't correspond to any 52 concrete operation. As such, ``BasicBlock``\ s are mapped to ``MemoryPhi``\ s 99 ; 6 = MemoryPhi({%0,1},{if.end,4}) 113 ; 5 = MemoryPhi({if.then,2},{if.else,3}) 128 %p1`` in LLVM with ``%1``). Again, ``MemoryPhi``\ s don't correspond to any LLVM 129 Instruction, so the line directly below a ``MemoryPhi`` isn't special. 133 - ``6 = MemoryPhi({entry,1},{if.end,4})`` notes that, when entering 135 ``MemoryPhi`` is referred to in the textual IR by the number ``6``. [all …]
|
/external/swiftshader/third_party/llvm-7.0/llvm/include/llvm/Analysis/ |
D | MemorySSA.h | 203 friend class MemoryPhi; variable 459 class MemoryPhi final : public MemoryAccess { 467 MemoryPhi(LLVMContext &C, BasicBlock *BB, unsigned Ver, unsigned NumPreds = 0) 643 assert((isa<MemoryDef>(this) || isa<MemoryPhi>(this)) && 647 return cast<MemoryPhi>(this)->getID(); 676 template <> struct OperandTraits<MemoryPhi> : public HungoffOperandTraits<2> {}; 677 DEFINE_TRANSPARENT_OPERAND_ACCESSORS(MemoryPhi, MemoryAccess) 693 MemoryPhi *getMemoryAccess(const BasicBlock *BB) const; 818 MemoryPhi *createMemoryPhi(BasicBlock *BB); 1058 MemoryPhi *MP = dyn_cast<MemoryPhi>(Access); [all …]
|
D | MemorySSAUpdater.h | 69 SmallSet<AssertingVH<MemoryPhi>, 8> NonOptPhis; 221 MemoryAccess *tryRemoveTrivialPhi(MemoryPhi *Phi, RangeType &Operands);
|
/external/llvm/unittests/Transforms/Utils/ |
D | MemorySSA.cpp | 96 MemoryPhi *MP = MSSA.createMemoryPhi(Merge); in TEST_F() 105 EXPECT_TRUE(isa<MemoryPhi>(DefiningAccess)); in TEST_F() 136 EXPECT_TRUE(isa<MemoryPhi>(DefiningAccess)); in TEST_F() 139 MemoryPhi *MP = cast<MemoryPhi>(DefiningAccess); in TEST_F() 182 EXPECT_TRUE(isa<MemoryPhi>(DefiningAccess)); in TEST_F()
|
/external/swiftshader/third_party/llvm-7.0/llvm/unittests/Analysis/ |
D | MemorySSA.cpp | 99 MemoryPhi *MP = MSSA.getMemoryAccess(Merge); in TEST_F() 106 EXPECT_TRUE(isa<MemoryPhi>(DefiningAccess)); in TEST_F() 145 MemoryPhi *MP = MSSA.getMemoryAccess(Merge); in TEST_F() 177 MemoryPhi *MergePhi = in TEST_F() 178 dyn_cast<MemoryPhi>(SecondLoadAccess->getDefiningAccess()); in TEST_F() 193 MergePhi = dyn_cast<MemoryPhi>(SecondLoadAccess->getDefiningAccess()); in TEST_F() 235 MemoryPhi *MP = MSSA.getMemoryAccess(Merge); in TEST_F() 243 EXPECT_TRUE(isa<MemoryPhi>(DefiningAccess)); in TEST_F() 363 EXPECT_TRUE(isa<MemoryPhi>(LoadAccess->getDefiningAccess())); in TEST_F() 364 MemoryPhi *MergePhi = cast<MemoryPhi>(LoadAccess->getDefiningAccess()); in TEST_F() [all …]
|