| /llvm-project-15.0.7/llvm/lib/Analysis/ |
| H A D | MemorySSAUpdater.cpp | 192 if (MemoryPhi *UsePhi = dyn_cast<MemoryPhi>(&*U)) in recursePhi() 279 if (MemoryPhi *Phi = cast_or_null<MemoryPhi>(MP)) in insertUse() 448 MemoryPhi *Phi = dyn_cast_or_null<MemoryPhi>(MP); in insertDef() 455 MemoryPhi *Phi = dyn_cast_or_null<MemoryPhi>(MP); in insertDef() 474 if (MemoryPhi *Phi = dyn_cast<MemoryPhi>(NewDef)) in fixupDefs() 597 MemoryPhi *DefPhi = cast<MemoryPhi>(InsnDefining); in getNewDefiningAccessForClone() 717 MemoryPhi *IncPhi = cast<MemoryPhi>(IncomingAccess); in updateForClonedLoop() 1140 if (MemoryPhi *UsrPhi = dyn_cast<MemoryPhi>(Usr)) { in applyInsertUpdates() 1170 if (MemoryPhi *PhiUser = dyn_cast<MemoryPhi>(U)) in moveTo() 1311 if (MemoryPhi *MP = dyn_cast<MemoryPhi>(MA)) { in removeMemoryAccess() [all …]
|
| H A D | MemorySSA.cpp | 486 assert(isa<MemoryPhi>(MA)); in checkClobberSanity() 623 assert(isa<MemoryPhi>(Desc.Last) && in walkToPhiOrClobber() 835 MemoryPhi *Current = Phi; in tryOptimizePhi() 1643 if (isa<MemoryPhi>(NewAccess)) { in insertIntoListsForBlock() 1720 if (isa<MemoryPhi>(What)) { in moveTo() 1736 MemoryPhi *Phi = new MemoryPhi(BB->getContext(), BB, NextID++); in createMemoryPhi() 2016 MemoryPhi *Phi = getMemoryAccess(&B); in verifyOrderingDominationAndDefUses() 2174 if (MemoryPhi *MP = dyn_cast<MemoryPhi>(Dominatee.getUser())) { in dominates() 2229 void MemoryPhi::print(raw_ostream &OS) const { in print() 2673 void MemoryPhi::deleteMe(DerivedUser *Self) { in deleteMe() [all …]
|
| /llvm-project-15.0.7/llvm/test/Analysis/MemorySSA/ |
| H A D | pr43438.ll | 5 ; CHECK: 5 = MemoryPhi( 6 ; CHECK-NOT: 7 = MemoryPhi( 49 ; CHECK: 7 = MemoryPhi( 50 ; CHECK: 6 = MemoryPhi( 51 ; CHECK: 10 = MemoryPhi( 52 ; CHECK: 9 = MemoryPhi( 53 ; CHECK: 8 = MemoryPhi(
|
| H A D | pr43317.ll | 7 ; CHECK-NOT: 5 = MemoryPhi( 8 ; CHECK-NOT: 6 = MemoryPhi( 9 ; CHECK: 4 = MemoryPhi( 10 ; CHECK-NOT: 7 = MemoryPhi(
|
| H A D | cyclicphi.ll | 13 ; CHECK: 3 = MemoryPhi({%0,liveOnEntry},{bb77,2}) 27 ; CHECK: 2 = MemoryPhi({bb26,3},{bb68,1}) 43 ; CHECK: 3 = MemoryPhi({%0,liveOnEntry},{bb77,2}) 57 ; CHECK: 2 = MemoryPhi({bb26,3},{bb68,1}) 73 ; CHECK: 3 = MemoryPhi({%0,liveOnEntry},{bb77,2}) 87 ; CHECK: 2 = MemoryPhi({bb26,3},{bb68,1}) 102 ; CHECK: 3 = MemoryPhi({%0,liveOnEntry},{bb77,2}) 118 ; CHECK: 4 = MemoryPhi({bb26,3},{bb68,1}) 133 ; CHECK: 3 = MemoryPhi({%0,liveOnEntry},{bb77,2}) 149 ; CHECK: 2 = MemoryPhi({bb26,3},{bb68,1})
|
| H A D | phi-translation.ll | 23 ; CHECK: 3 = MemoryPhi({entry,1},{if.then,2}) 50 ; CHECK: 7 = MemoryPhi({entry,1},{if.then,2}) 57 ; CHECK: 5 = MemoryPhi({if.then,2},{phi.3,3}) 66 ; CHECK: 6 = MemoryPhi({phi.2,4},{phi.3,3}) 100 ; CHECK: 6 = MemoryPhi({a,2},{b,3}) 107 ; CHECK: 7 = MemoryPhi({a,2},{b,3}) 114 ; 8 = MemoryPhi({c,4},{d,5}) 131 ; CHECK: 6 = MemoryPhi({%0,1},{loop.3,4}) 138 ; CHECK: 5 = MemoryPhi({loop.1,2},{loop.3,4}) 145 ; CHECK: 7 = MemoryPhi({loop.1,2},{loop.2,3}) [all …]
|
| H A D | pr43427.ll | 6 ; CHECK-NEXT: ; [[NO4:.*]] = MemoryPhi({entry,liveOnEntry},{lbl1.backedge,[[NO9:.*]]}) 15 ; CHECK-NEXT: ; [[NO8:.*]] = MemoryPhi({lbl3,[[NO7:.*]]},{for.end,[[NO2]]}) 19 ; CHECK-NEXT: [[NO7]] = MemoryPhi({lbl2,[[NO8]]},{for.end,2}) 26 ; CHECK-NEXT: [[NO9]] = MemoryPhi({cleanup,[[NO7]]},{if.else,2})
|
| H A D | many-dom-backedge.ll | 13 ; CHECK: 9 = MemoryPhi({entry,liveOnEntry},{sw.epilog,6}) 43 ; CHECK: 10 = MemoryPhi({loopbegin,9},{sw.almostexit,6}) 56 ; CHECK: 8 = MemoryPhi({sw.default,5},{sw.bb3,4},{sw.bb,1},{sw.bb1,2},{sw.bb2,3})
|
| H A D | multi-edges.ll | 15 ; CHECK: 4 = MemoryPhi({entry,1},{Loop.End,3}) 22 ; CHECK: 3 = MemoryPhi({entry,1},{Loop.Body,2},{Loop.Body,2})
|
| H A D | loop_rotate_remove_trivial_phis.ll | 14 ; CHECK-NOT: 7 = MemoryPhi 15 ; CHECK-NOT: 6 = MemoryPhi 48 ; CHECK: 3 = MemoryPhi({for.body7.lr.ph,liveOnEntry},{for.body7,1})
|
| H A D | many-doms.ll | 12 ; CHECK: 8 = MemoryPhi({entry,liveOnEntry},{sw.epilog,6}) 54 ; CHECK: 7 = MemoryPhi({sw.default,5},{sw.bb,1},{sw.bb1,2},{sw.bb2,3},{sw.bb3,4})
|
| H A D | multiple-backedges-hal.ll | 44 ; CHECK: 5 = MemoryPhi({Entry,1},{InnerLoop.Tail,3}) 54 ; CHECK: 4 = MemoryPhi({OuterLoop,2},{InnerLoop,3})
|
| H A D | pr45927.ll | 16 ; CHECK-NEXT: ; [[NO5:.*]] = MemoryPhi({entry,liveOnEntry},{f.exit.i,[[NO5]]}) 41 ; CHECK-NEXT: ; [[NO4:.*]] = MemoryPhi({f.exit.thread.i,[[NO2]]},{g.exit.loopexit,[[NO7]]})
|
| H A D | print-dot-cfg-mssa.ll | 91 ; CHECK: {{[shape=record,style=filled, fillcolor=lightpink,label="{if.end:.*10 = MemoryPhi({bb2,5},… 94 ; CHECK: {{[shape=record,style=filled, fillcolor=lightpink,label="{if.end3:.*9 = MemoryPhi({if.end,…
|
| H A D | forward-unreachable.ll | 19 ; CHECK: 3 = MemoryPhi({split1,1},{split2,liveOnEntry},{forwardunreachable,liveOnEntry})
|
| H A D | unreachable.ll | 29 ; 3 = MemoryPhi({if.then,liveOnEntry},{if.end,1},{catch,liveOnEntry})
|
| H A D | pr41640.ll | 10 ; CHECK: 5 = MemoryPhi( 11 ; CHECK-NOT: 7 = MemoryPhi(
|
| H A D | function-clobber.ll | 48 ; CHECK: 3 = MemoryPhi({%0,1},{if.then,2})
|
| /llvm-project-15.0.7/llvm/docs/ |
| H A D | MemorySSA.rst | 47 - ``MemoryPhi`` 74 ``MemoryPhi``. As in LLVM IR, ``MemoryPhi``\ s don't correspond to any 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}) 172 disambiguated ``MemoryPhi``.) 256 ``MemoryDef`` or ``MemoryPhi`` of said ``MemoryDef``. 321 // Process MemoryDef or MemoryPhi as needed. 366 ; 3 = MemoryPhi({%0,1},{if.end,2}) [all …]
|
| /llvm-project-15.0.7/llvm/include/llvm/Analysis/ |
| H A D | MemorySSA.h | 210 friend class MemoryPhi; variable 493 class MemoryPhi final : public MemoryAccess { 676 assert((isa<MemoryDef>(this) || isa<MemoryPhi>(this)) && 680 return cast<MemoryPhi>(this)->getID(); 710 DEFINE_TRANSPARENT_OPERAND_ACCESSORS(MemoryPhi, MemoryAccess) 735 MemoryPhi *getMemoryAccess(const BasicBlock *BB) const { 872 MemoryPhi *createMemoryPhi(BasicBlock *BB); 1135 MemoryPhi *MP = dyn_cast<MemoryPhi>(Access); 1144 if (const MemoryPhi *MP = dyn_cast<MemoryPhi>(Access)) 1152 if (const MemoryPhi *MP = dyn_cast<MemoryPhi>(Access)) { [all …]
|
| H A D | MemorySSAUpdater.h | 51 using PhiToDefMap = SmallDenseMap<MemoryPhi *, MemoryAccess *>; 63 SmallSet<AssertingVH<MemoryPhi>, 8> NonOptPhis; 260 MemoryAccess *tryRemoveTrivialPhi(MemoryPhi *Phi); 262 MemoryAccess *tryRemoveTrivialPhi(MemoryPhi *Phi, RangeType &Operands);
|
| /llvm-project-15.0.7/llvm/test/Transforms/LICM/ |
| H A 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})
|
| /llvm-project-15.0.7/llvm/unittests/Analysis/ |
| H A D | MemorySSATest.cpp | 102 MemoryPhi *MP = MSSA.getMemoryAccess(Merge); in TEST_F() 109 EXPECT_TRUE(isa<MemoryPhi>(DefiningAccess)); in TEST_F() 148 MemoryPhi *MP = MSSA.getMemoryAccess(Merge); in TEST_F() 180 MemoryPhi *MergePhi = in TEST_F() 234 MemoryPhi *MP = MSSA.getMemoryAccess(Merge); in TEST_F() 246 EXPECT_TRUE(isa<MemoryPhi>(DefiningAccess)); in TEST_F() 367 MemoryPhi *MergePhi = cast<MemoryPhi>(LoadAccess->getDefiningAccess()); in TEST_F() 410 MemoryPhi *MergePhi = cast<MemoryPhi>(LoadAccess->getDefiningAccess()); in TEST_F() 454 MemoryPhi *MergePhi = cast<MemoryPhi>(LoadAccess->getDefiningAccess()); in TEST_F() 507 EXPECT_TRUE(isa<MemoryPhi>(DefiningAccess)); in TEST_F() [all …]
|
| /llvm-project-15.0.7/llvm/lib/Target/AMDGPU/Utils/ |
| H A D | AMDGPUMemoryUtils.cpp | 209 const MemoryPhi *Phi = cast<MemoryPhi>(MA); in isClobberedInFunction()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Scalar/ |
| H A D | NewGVN.cpp | 299 using MemoryMemberType = MemoryPhi; 604 DenseMap<const MemoryPhi *, MemoryPhiState> MemoryPhiState; 778 void valueNumberMemoryPhi(MemoryPhi *); 871 MemoryPhi *getMemoryAccess(const BasicBlock *) const; 962 auto *MP = dyn_cast<MemoryPhi>(V); in getBlockForValue() 1653 if (auto *MP = dyn_cast<MemoryPhi>(From)) { in setMemoryClass() 2154 return getMinDFSOfRange<const MemoryPhi>(CC->memory()); in getNextMemoryLeader() 2899 const MemoryPhi *MP = cast<MemoryPhi>(&Def); in initializeCongruenceClasses() 3034 void NewGVN::valueNumberMemoryPhi(MemoryPhi *MP) { in valueNumberMemoryPhi() 3161 auto *MP = cast<MemoryPhi>(EndDef); in singleReachablePHIPath() [all …]
|