/external/llvm-project/llvm/lib/Analysis/ |
D | MemorySSAUpdater.cpp | 96 MemoryPhi *Phi = dyn_cast_or_null<MemoryPhi>(MSSA->getMemoryAccess(BB)); in getPreviousDefRecursive() 199 if (MemoryPhi *UsePhi = dyn_cast<MemoryPhi>(&*U)) in recursePhi() 209 MemoryAccess *MemorySSAUpdater::tryRemoveTrivialPhi(MemoryPhi *Phi) { in tryRemoveTrivialPhi() 215 MemoryAccess *MemorySSAUpdater::tryRemoveTrivialPhi(MemoryPhi *Phi, in tryRemoveTrivialPhi() 285 if (MemoryPhi *Phi = cast_or_null<MemoryPhi>(MP)) in insertUse() 291 static void setMemoryPhiValueForBlock(MemoryPhi *MP, const BasicBlock *BB, in setMemoryPhiValueForBlock() 321 !(isa<MemoryPhi>(DefBefore) && in insertDef() 375 if (const auto *RealPHI = cast_or_null<MemoryPhi>(VH)) in insertDef() 381 SmallVector<AssertingVH<MemoryPhi>, 4> NewInsertedPHIs; in insertDef() 450 MemoryPhi *Phi = dyn_cast_or_null<MemoryPhi>(MP); in insertDef() [all …]
|
D | MemorySSA.cpp | 470 assert(isa<MemoryPhi>(MA)); in checkClobberSanity() 493 assert((isa<MemoryPhi>(ClobberAt) || FoundClobber) && in checkClobberSanity() 542 const MemoryAccess *getWalkTarget(const MemoryPhi *From) const { in getWalkTarget() 607 assert(isa<MemoryPhi>(Desc.Last) && in walkToPhiOrClobber() 612 void addSearches(MemoryPhi *Phi, SmallVectorImpl<ListIndex> &PausedSearches, in addSearches() 715 addSearches(cast<MemoryPhi>(Res.Result), PausedSearches, PathIndex); in getBlockingAccess() 790 OptznResult tryOptimizePhi(MemoryPhi *Phi, MemoryAccess *Start, in tryOptimizePhi() 819 MemoryPhi *Current = Phi; in tryOptimizePhi() 927 auto *DefChainPhi = cast<MemoryPhi>(DefChainEnd); in tryOptimizePhi() 981 OptznResult OptRes = tryOptimizePhi(cast<MemoryPhi>(FirstDesc.Last), in findClobber() [all …]
|
/external/swiftshader/third_party/llvm-10.0/llvm/lib/Analysis/ |
D | MemorySSAUpdater.cpp | 94 MemoryPhi *Phi = dyn_cast_or_null<MemoryPhi>(MSSA->getMemoryAccess(BB)); in getPreviousDefRecursive() 197 if (MemoryPhi *UsePhi = dyn_cast<MemoryPhi>(&*U)) in recursePhi() 207 MemoryAccess *MemorySSAUpdater::tryRemoveTrivialPhi(MemoryPhi *Phi) { in tryRemoveTrivialPhi() 213 MemoryAccess *MemorySSAUpdater::tryRemoveTrivialPhi(MemoryPhi *Phi, in tryRemoveTrivialPhi() 283 if (MemoryPhi *Phi = cast_or_null<MemoryPhi>(MP)) in insertUse() 289 static void setMemoryPhiValueForBlock(MemoryPhi *MP, const BasicBlock *BB, in setMemoryPhiValueForBlock() 319 !(isa<MemoryPhi>(DefBefore) && in insertDef() 372 if (const auto *RealPHI = cast_or_null<MemoryPhi>(VH)) in insertDef() 378 SmallVector<AssertingVH<MemoryPhi>, 4> NewInsertedPHIs; in insertDef() 445 MemoryPhi *Phi = dyn_cast_or_null<MemoryPhi>(MP); in insertDef() [all …]
|
D | MemorySSA.cpp | 467 assert(isa<MemoryPhi>(MA)); in checkClobberSanity() 484 assert((isa<MemoryPhi>(ClobberAt) || FoundClobber) && in checkClobberSanity() 526 const MemoryAccess *getWalkTarget(const MemoryPhi *From) const { in getWalkTarget() 591 assert(isa<MemoryPhi>(Desc.Last) && in walkToPhiOrClobber() 596 void addSearches(MemoryPhi *Phi, SmallVectorImpl<ListIndex> &PausedSearches, in addSearches() 690 addSearches(cast<MemoryPhi>(Res.Result), PausedSearches, PathIndex); in getBlockingAccess() 765 OptznResult tryOptimizePhi(MemoryPhi *Phi, MemoryAccess *Start, in tryOptimizePhi() 794 MemoryPhi *Current = Phi; in tryOptimizePhi() 902 auto *DefChainPhi = cast<MemoryPhi>(DefChainEnd); in tryOptimizePhi() 955 OptznResult OptRes = tryOptimizePhi(cast<MemoryPhi>(FirstDesc.Last), in findClobber() [all …]
|
/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})
|
/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-project/llvm/test/Analysis/MemorySSA/ |
D | pr43438.ll | 6 ; CHECK: 5 = MemoryPhi( 7 ; CHECK-NOT: 7 = MemoryPhi( 50 ; CHECK: 7 = MemoryPhi( 51 ; CHECK: 6 = MemoryPhi( 52 ; CHECK: 10 = MemoryPhi( 53 ; CHECK: 9 = MemoryPhi( 54 ; CHECK: 8 = MemoryPhi(
|
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 | pr43317.ll | 8 ; CHECK-NOT: 5 = MemoryPhi( 9 ; CHECK-NOT: 6 = MemoryPhi( 10 ; CHECK: 4 = MemoryPhi( 11 ; CHECK-NOT: 7 = MemoryPhi(
|
D | phi-translation.ll | 25 ; CHECK: 3 = MemoryPhi({entry,1},{if.then,2}) 52 ; CHECK: 7 = MemoryPhi({entry,1},{if.then,2}) 59 ; CHECK: 5 = MemoryPhi({if.then,2},{phi.3,3}) 68 ; CHECK: 6 = MemoryPhi({phi.2,4},{phi.3,3}) 102 ; CHECK: 6 = MemoryPhi({a,2},{b,3}) 109 ; CHECK: 7 = MemoryPhi({a,2},{b,3}) 116 ; 8 = MemoryPhi({c,4},{d,5}) 133 ; CHECK: 6 = MemoryPhi({%0,1},{loop.3,4}) 140 ; CHECK: 5 = MemoryPhi({loop.1,2},{loop.3,4}) 147 ; CHECK: 7 = MemoryPhi({loop.1,2},{loop.2,3}) [all …]
|
D | pr43427.ll | 7 ; CHECK-NEXT: ; [[NO4:.*]] = MemoryPhi({entry,liveOnEntry},{lbl1.backedge,[[NO9:.*]]}) 16 ; CHECK-NEXT: ; [[NO8:.*]] = MemoryPhi({lbl3,[[NO7:.*]]},{for.end,[[NO2]]}) 20 ; CHECK-NEXT: [[NO7]] = MemoryPhi({lbl2,[[NO8]]},{for.end,2}) 27 ; CHECK-NEXT: [[NO9]] = MemoryPhi({cleanup,[[NO7]]},{if.else,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})
|
/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/llvm-project/llvm/docs/ |
D | MemorySSA.rst | 47 - ``MemoryPhi`` 55 ``MemoryDef/MemoryPhi`` which is the version of memory that the new 71 ``MemoryPhi``\ s are ``PhiNode``\ s, but for memory operations. If at any 74 ``MemoryPhi``. As in LLVM IR, ``MemoryPhi``\ s don't correspond to any 75 concrete operation. As such, ``BasicBlock``\ s are mapped to ``MemoryPhi``\ s 105 In the same manner, ``a = MemoryPhi({BB1,b},{BB2,c})`` means that 116 a value (i.e. ``MemoryDef/MemoryPhi``), 131 ; 6 = MemoryPhi({entry,1},{if.end,4}) 145 ; 5 = MemoryPhi({if.then,2},{if.else,3}) 160 %p1`` in LLVM with ``%1``). Again, ``MemoryPhi``\ s don't correspond to any LLVM [all …]
|
/external/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Analysis/ |
D | MemorySSA.h | 206 friend class MemoryPhi; variable 482 class MemoryPhi final : public MemoryAccess { 490 MemoryPhi(LLVMContext &C, BasicBlock *BB, unsigned Ver, unsigned NumPreds = 0) 666 assert((isa<MemoryDef>(this) || isa<MemoryPhi>(this)) && 670 return cast<MemoryPhi>(this)->getID(); 699 template <> struct OperandTraits<MemoryPhi> : public HungoffOperandTraits<2> {}; 700 DEFINE_TRANSPARENT_OPERAND_ACCESSORS(MemoryPhi, MemoryAccess) 725 MemoryPhi *getMemoryAccess(const BasicBlock *BB) const { 726 return cast_or_null<MemoryPhi>(ValueToMemoryAccess.lookup(cast<Value>(BB))); 856 MemoryPhi *createMemoryPhi(BasicBlock *BB); [all …]
|
D | MemorySSAUpdater.h | 65 using PhiToDefMap = SmallDenseMap<MemoryPhi *, MemoryAccess *>; 79 SmallSet<AssertingVH<MemoryPhi>, 8> NonOptPhis; 278 MemoryAccess *tryRemoveTrivialPhi(MemoryPhi *Phi); 280 MemoryAccess *tryRemoveTrivialPhi(MemoryPhi *Phi, RangeType &Operands);
|
/external/llvm-project/llvm/include/llvm/Analysis/ |
D | MemorySSA.h | 207 friend class MemoryPhi; variable 483 class MemoryPhi final : public MemoryAccess { 491 MemoryPhi(LLVMContext &C, BasicBlock *BB, unsigned Ver, unsigned NumPreds = 0) 664 assert((isa<MemoryDef>(this) || isa<MemoryPhi>(this)) && 668 return cast<MemoryPhi>(this)->getID(); 697 template <> struct OperandTraits<MemoryPhi> : public HungoffOperandTraits<2> {}; 698 DEFINE_TRANSPARENT_OPERAND_ACCESSORS(MemoryPhi, MemoryAccess) 723 MemoryPhi *getMemoryAccess(const BasicBlock *BB) const { 724 return cast_or_null<MemoryPhi>(ValueToMemoryAccess.lookup(cast<Value>(BB))); 854 MemoryPhi *createMemoryPhi(BasicBlock *BB); [all …]
|
D | MemorySSAUpdater.h | 53 using PhiToDefMap = SmallDenseMap<MemoryPhi *, MemoryAccess *>; 65 SmallSet<AssertingVH<MemoryPhi>, 8> NonOptPhis; 264 MemoryAccess *tryRemoveTrivialPhi(MemoryPhi *Phi); 266 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/llvm-project/llvm/test/Transforms/LICM/ |
D | pr42969.ll | 14 ; 4 = MemoryPhi({entry,liveOnEntry},{scalar.cleanup,2}) 36 ; 5 = MemoryPhi({outer,4},{middle.block,1}) 41 ; 3 = MemoryPhi({scalar.ph,5},{scalar.body,2})
|