Home
last modified time | relevance | path

Searched refs:MemoryPhi (Results 1 – 25 of 59) sorted by relevance

123

/external/llvm-project/llvm/lib/Analysis/
DMemorySSAUpdater.cpp96 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 …]
DMemorySSA.cpp470 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/
DMemorySSAUpdater.cpp94 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 …]
DMemorySSA.cpp467 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/
Dphi-translation.ll23 ; 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 …]
Dcyclicphi.ll14 ; 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})
Dlivein.ll13 ; CHECK-NOT: 2 = MemoryPhi
27 ; CHECK: 2 = MemoryPhi({left,1},{right,liveOnEntry})
48 ; CHECK: 4 = MemoryPhi({%0,1},{if.then,2})
Dmany-dom-backedge.ll14 ; 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})
Dmulti-edges.ll16 ; 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/
DMemorySSA.cpp210 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/
Dpr43438.ll6 ; 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(
Dcyclicphi.ll14 ; 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})
Dpr43317.ll8 ; CHECK-NOT: 5 = MemoryPhi(
9 ; CHECK-NOT: 6 = MemoryPhi(
10 ; CHECK: 4 = MemoryPhi(
11 ; CHECK-NOT: 7 = MemoryPhi(
Dphi-translation.ll25 ; 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 …]
Dpr43427.ll7 ; 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})
Dmany-dom-backedge.ll14 ; 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})
Dmulti-edges.ll16 ; 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/
DMemorySSA.h158 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/
DMemorySSA.rst47 - ``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/
DMemorySSA.h206 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 …]
DMemorySSAUpdater.h65 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/
DMemorySSA.h207 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 …]
DMemorySSAUpdater.h53 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/
DMemorySSA.cpp96 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/
Dpr42969.ll14 ; 4 = MemoryPhi({entry,liveOnEntry},{scalar.cleanup,2})
36 ; 5 = MemoryPhi({outer,4},{middle.block,1})
41 ; 3 = MemoryPhi({scalar.ph,5},{scalar.body,2})

123