reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
39 static inline T* getEmptyKey() { 41 Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable; 45 static inline T* getTombstoneKey() { 47 Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable; 51 static unsigned getHashValue(const T *PtrVal) { 56 static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; } 56 static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }include/llvm/Analysis/MemorySSA.h
669 return cast<MemoryPhi>(this)->getID(); 724 MemoryPhi *getMemoryAccess(const BasicBlock *BB) const { 725 return cast_or_null<MemoryPhi>(ValueToMemoryAccess.lookup(cast<Value>(BB))); 857 MemoryPhi *createMemoryPhi(BasicBlock *BB); 1102 MemoryPhi *MP = dyn_cast<MemoryPhi>(Access); 1102 MemoryPhi *MP = dyn_cast<MemoryPhi>(Access); 1111 if (const MemoryPhi *MP = dyn_cast<MemoryPhi>(Access)) 1111 if (const MemoryPhi *MP = dyn_cast<MemoryPhi>(Access)) 1119 if (const MemoryPhi *MP = dyn_cast<MemoryPhi>(Access)) { 1119 if (const MemoryPhi *MP = dyn_cast<MemoryPhi>(Access)) { 1191 WalkingPhi = Info.first && isa<MemoryPhi>(Info.first);include/llvm/Analysis/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);include/llvm/IR/ValueHandle.h
256 ValueTy *getValPtr() const { return static_cast<ValueTy *>(getRawValPtr()); } 257 void setValPtr(ValueTy *P) { setRawValPtr(GetAsValue(P)); } 262 AssertingVH(ValueTy *P) : ValueHandleBase(Assert, GetAsValue(P)) {} 269 operator ValueTy*() const { 273 ValueTy *operator=(ValueTy *RHS) { 273 ValueTy *operator=(ValueTy *RHS) { 277 ValueTy *operator=(const AssertingVH<ValueTy> &RHS) { 277 ValueTy *operator=(const AssertingVH<ValueTy> &RHS) { 282 ValueTy *operator->() const { return getValPtr(); } 283 ValueTy &operator*() const { return *getValPtr(); }include/llvm/Support/Casting.h
58 return To::classof(&Val); 66 static inline bool doit(const From &) { return true; } 77 return isa_impl<To, From>::doit(Val); 92 return isa_impl<To, From>::doit(*Val); 104 static inline bool doit(const From *Val) { 106 return isa_impl<To, From>::doit(*Val); 106 return isa_impl<To, From>::doit(*Val); 122 return isa_impl_wrap<To, SimpleFrom, 132 return isa_impl_cl<To,FromTy>::doit(Val); 142 return isa_impl_wrap<X, const Y, 172 using ret_type = To *; // Pointer arg case, return Ty* 176 using ret_type = const To *; // Constant pointer arg case, return const Ty* 198 using ret_type = typename cast_retty<To, SimpleFrom>::ret_type; 204 using ret_type = typename cast_retty_impl<To,FromTy>::ret_type; 210 To, From, typename simplify_type<From>::SimpleType>::ret_type; 218 static typename cast_retty<To, From>::ret_type doit(From &Val) { 219 return cast_convert_val<To, SimpleFrom, 227 static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) { 228 typename cast_retty<To, FromTy>::ret_type Res2 248 typename cast_retty<X, const Y>::ret_type>::type 252 X, const Y, typename simplify_type<const Y>::SimpleType>::doit(Val); 256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) { 258 return cast_convert_val<X, Y, 263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) { 263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) { 263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) { 265 return cast_convert_val<X, Y*, 265 return cast_convert_val<X, Y*, 266 typename simplify_type<Y*>::SimpleType>::doit(Val); 285 typename cast_retty<X, const Y>::ret_type>::type 290 return cast<X>(Val); 296 typename cast_retty<X, Y>::ret_type>::type 301 return cast<X>(Val); 305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type 309 return cast<X>(Val); 337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) { 342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) { 343 return isa<X>(Val) ? cast<X>(Val) : nullptr; 343 return isa<X>(Val) ? cast<X>(Val) : nullptr; 352 typename cast_retty<X, const Y>::ret_type>::type 360 typename cast_retty<X, Y>::ret_type>::type 362 return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr; 362 return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr; 366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type 366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type 367 dyn_cast_or_null(Y *Val) { 368 return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr; 368 return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;include/llvm/Support/PointerLikeTypeTraits.h
56 static inline void *getAsVoidPointer(T *P) { return P; } 57 static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); } 59 enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value }; 91 typedef PointerLikeTypeTraits<T *> NonConst; 93 static inline const void *getAsVoidPointer(const T *P) { 96 static inline const T *getFromVoidPointer(const void *P) {lib/Analysis/MemorySSA.cpp
525 const MemoryAccess *getWalkTarget(const MemoryPhi *From) const { 595 void addSearches(MemoryPhi *Phi, SmallVectorImpl<ListIndex> &PausedSearches, 689 addSearches(cast<MemoryPhi>(Res.Result), PausedSearches, PathIndex); 764 OptznResult tryOptimizePhi(MemoryPhi *Phi, MemoryAccess *Start, 793 MemoryPhi *Current = Phi; 901 auto *DefChainPhi = cast<MemoryPhi>(DefChainEnd); 901 auto *DefChainPhi = cast<MemoryPhi>(DefChainEnd); 954 OptznResult OptRes = tryOptimizePhi(cast<MemoryPhi>(FirstDesc.Last), 1092 if (It == PerBlockAccesses.end() || !isa<MemoryPhi>(It->second->front())) 1095 auto *Phi = cast<MemoryPhi>(&Accesses->front()); 1095 auto *Phi = cast<MemoryPhi>(&Accesses->front()); 1200 if (It == PerBlockAccesses.end() || !isa<MemoryPhi>(It->second->front())) 1203 auto *Phi = cast<MemoryPhi>(&Accesses->front()); 1203 auto *Phi = cast<MemoryPhi>(&Accesses->front()); 1425 if (isa<MemoryPhi>(VersionStack[UpperBound])) { 1600 if (isa<MemoryPhi>(NewAccess)) { 1606 *Accesses, [](const MemoryAccess &MA) { return isa<MemoryPhi>(MA); }); 1611 *Defs, [](const MemoryAccess &MA) { return isa<MemoryPhi>(MA); }); 1677 if (isa<MemoryPhi>(What)) { 1691 MemoryPhi *MemorySSA::createMemoryPhi(BasicBlock *BB) { 1693 MemoryPhi *Phi = new MemoryPhi(BB->getContext(), BB, NextID++); 1693 MemoryPhi *Phi = new MemoryPhi(BB->getContext(), BB, NextID++); 1794 const auto *MP = cast<MemoryPhi>(Replacee); 1794 const auto *MP = cast<MemoryPhi>(Replacee); 2031 if (MemoryPhi *MP = getMemoryAccess(&B)) 2154 if (MemoryPhi *MP = dyn_cast<MemoryPhi>(Dominatee.getUser())) { 2154 if (MemoryPhi *MP = dyn_cast<MemoryPhi>(Dominatee.getUser())) { 2337 if (isa<MemoryPhi>(StartingAccess)) 2437 if (SkipSelf && isa<MemoryPhi>(OptimizedAccess) &&lib/Analysis/MemorySSAUpdater.cpp
94 MemoryPhi *Phi = dyn_cast_or_null<MemoryPhi>(MSSA->getMemoryAccess(BB)); 94 MemoryPhi *Phi = dyn_cast_or_null<MemoryPhi>(MSSA->getMemoryAccess(BB)); 197 if (MemoryPhi *UsePhi = dyn_cast<MemoryPhi>(&*U)) 197 if (MemoryPhi *UsePhi = dyn_cast<MemoryPhi>(&*U)) 207 MemoryAccess *MemorySSAUpdater::tryRemoveTrivialPhi(MemoryPhi *Phi) { 213 MemoryAccess *MemorySSAUpdater::tryRemoveTrivialPhi(MemoryPhi *Phi, 283 if (MemoryPhi *Phi = cast_or_null<MemoryPhi>(MP)) 283 if (MemoryPhi *Phi = cast_or_null<MemoryPhi>(MP)) 289 static void setMemoryPhiValueForBlock(MemoryPhi *MP, const BasicBlock *BB, 319 !(isa<MemoryPhi>(DefBefore) && 372 if (const auto *RealPHI = cast_or_null<MemoryPhi>(VH)) 372 if (const auto *RealPHI = cast_or_null<MemoryPhi>(VH)) 378 SmallVector<AssertingVH<MemoryPhi>, 4> NewInsertedPHIs; 380 auto *MPhi = MSSA->getMemoryAccess(BBIDF); 445 MemoryPhi *Phi = dyn_cast_or_null<MemoryPhi>(MP); 445 MemoryPhi *Phi = dyn_cast_or_null<MemoryPhi>(MP); 464 if (MemoryPhi *Phi = dyn_cast<MemoryPhi>(NewDef)) 464 if (MemoryPhi *Phi = dyn_cast<MemoryPhi>(NewDef)) 477 if (auto *MP = MSSA->getMemoryAccess(S)) 508 if (auto *MP = MSSA->getMemoryAccess(S)) 523 if (MemoryPhi *MPhi = MSSA->getMemoryAccess(To)) { 531 if (MemoryPhi *MPhi = MSSA->getMemoryAccess(To)) { 574 MemoryPhi *DefPhi = cast<MemoryPhi>(InsnDefining); 574 MemoryPhi *DefPhi = cast<MemoryPhi>(InsnDefining); 616 auto *MPhi = MSSA->getMemoryAccess(Header); 622 auto *NewMPhi = MSSA->createMemoryPhi(BEBlock); 694 MemoryPhi *IncPhi = cast<MemoryPhi>(IncomingAccess); 694 MemoryPhi *IncPhi = cast<MemoryPhi>(IncomingAccess); 712 if (MemoryPhi *MPhi = MSSA->getMemoryAccess(BB)) { 713 MemoryPhi *NewPhi = MSSA->createMemoryPhi(NewBlock); 724 if (MemoryPhi *MPhi = MSSA->getMemoryAccess(BB)) 726 FixPhiIncomingValues(MPhi, cast<MemoryPhi>(NewPhi)); 740 if (MemoryPhi *MPhi = MSSA->getMemoryAccess(BB)) 987 MemoryPhi *NewPhi = MSSA->getMemoryAccess(BB); 1049 if (auto *MPhi = cast_or_null<MemoryPhi>(VH)) 1049 if (auto *MPhi = cast_or_null<MemoryPhi>(VH)) 1061 SmallSetVector<MemoryPhi *, 4> PhisToFill; 1065 auto *IDFPhi = MSSA->createMemoryPhi(BBIDF); 1071 auto *IDFPhi = MSSA->getMemoryAccess(BBIDF); 1100 if (MemoryPhi *UsrPhi = dyn_cast<MemoryPhi>(Usr)) { 1100 if (MemoryPhi *UsrPhi = dyn_cast<MemoryPhi>(Usr)) { 1107 if (auto *DomBlPhi = MSSA->getMemoryAccess(DominatedBlock)) 1130 if (MemoryPhi *PhiUser = dyn_cast<MemoryPhi>(U)) 1130 if (MemoryPhi *PhiUser = dyn_cast<MemoryPhi>(U)) 1197 if (auto *Phi = dyn_cast<MemoryPhi>(&*Defs->begin())) 1197 if (auto *Phi = dyn_cast<MemoryPhi>(&*Defs->begin())) 1208 if (MemoryPhi *MPhi = MSSA->getMemoryAccess(Succ)) 1218 if (MemoryPhi *MPhi = MSSA->getMemoryAccess(Succ)) 1224 static MemoryAccess *onlySingleValue(MemoryPhi *MP) { 1241 MemoryPhi *Phi = MSSA->getMemoryAccess(Old); 1251 MemoryPhi *NewPhi = MSSA->createMemoryPhi(New); 1279 if (MemoryPhi *MP = dyn_cast<MemoryPhi>(MA)) { 1279 if (MemoryPhi *MP = dyn_cast<MemoryPhi>(MA)) { 1292 SmallSetVector<MemoryPhi *, 4> PhisToCheck; 1314 if (MemoryPhi *MP = dyn_cast<MemoryPhi>(U.getUser())) 1314 if (MemoryPhi *MP = dyn_cast<MemoryPhi>(U.getUser())) 1333 if (MemoryPhi *MP = 1334 cast_or_null<MemoryPhi>(PhisToOptimize.pop_back_val())) 1347 if (MemoryPhi *MP = MSSA->getMemoryAccess(Succ)) { 1373 if (auto *MPhi = cast_or_null<MemoryPhi>(VH)) 1373 if (auto *MPhi = cast_or_null<MemoryPhi>(VH)) 1389 if (MemoryPhi *MPhi = MSSA->getMemoryAccess(Successor)) { 1405 if (auto *MPhi = MSSA->getMemoryAccess(Succ)) {lib/Transforms/Scalar/GVNHoist.cpp
938 SmallPtrSet<MemoryPhi *, 4> UsePhis; 940 if (MemoryPhi *Phi = dyn_cast<MemoryPhi>(U)) 940 if (MemoryPhi *Phi = dyn_cast<MemoryPhi>(U)) 943 for (MemoryPhi *Phi : UsePhis) {lib/Transforms/Scalar/LICM.cpp
1069 if (isa<MemoryPhi>(&Acc))
lib/Transforms/Scalar/NewGVN.cpp297 using MemoryMemberType = MemoryPhi; 602 DenseMap<const MemoryPhi *, MemoryPhiState> MemoryPhiState; 737 void valueNumberMemoryPhi(MemoryPhi *); 835 MemoryPhi *getMemoryAccess(const BasicBlock *) const; 911 MemoryPhi *NewGVN::getMemoryAccess(const BasicBlock *BB) const { 926 auto *MP = dyn_cast<MemoryPhi>(V); 926 auto *MP = dyn_cast<MemoryPhi>(V); 1677 if (auto *MP = dyn_cast<MemoryPhi>(From)) { 2165 return getMinDFSOfRange<const MemoryPhi>(CC->memory()); 2709 if (MemAccess && !isa<MemoryPhi>(MemAccess->getDefiningAccess()) && 2885 const MemoryPhi *MP = cast<MemoryPhi>(&Def); 2885 const MemoryPhi *MP = cast<MemoryPhi>(&Def); 3020 void NewGVN::valueNumberMemoryPhi(MemoryPhi *MP) { 3145 auto *MP = cast<MemoryPhi>(EndDef); 3204 if (auto *MemPHI = dyn_cast<MemoryPhi>(Pair.first)) { 3230 } else if (auto *FirstMP = dyn_cast<MemoryPhi>(KV.first)) { 3389 if (auto *MP = dyn_cast<MemoryPhi>(V)) { 3389 if (auto *MP = dyn_cast<MemoryPhi>(V)) {lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
876 if (!isa<MemoryPhi>(*Defs->begin()) || (++Defs->begin() != Defs->end()))
lib/Transforms/Utils/SimplifyCFG.cpp 307 if (auto *MPhi = MSSAU->getMemorySSA()->getMemoryAccess(Succ))
unittests/Analysis/MemorySSATest.cpp98 MemoryPhi *MP = MSSA.getMemoryAccess(Merge); 144 MemoryPhi *MP = MSSA.getMemoryAccess(Merge); 176 MemoryPhi *MergePhi = 177 dyn_cast<MemoryPhi>(SecondLoadAccess->getDefiningAccess()); 192 MergePhi = dyn_cast<MemoryPhi>(SecondLoadAccess->getDefiningAccess()); 230 MemoryPhi *MP = MSSA.getMemoryAccess(Merge); 363 MemoryPhi *MergePhi = cast<MemoryPhi>(LoadAccess->getDefiningAccess()); 363 MemoryPhi *MergePhi = cast<MemoryPhi>(LoadAccess->getDefiningAccess()); 406 MemoryPhi *MergePhi = cast<MemoryPhi>(LoadAccess->getDefiningAccess()); 406 MemoryPhi *MergePhi = cast<MemoryPhi>(LoadAccess->getDefiningAccess()); 450 MemoryPhi *MergePhi = cast<MemoryPhi>(LoadAccess->getDefiningAccess()); 450 MemoryPhi *MergePhi = cast<MemoryPhi>(LoadAccess->getDefiningAccess()); 506 MemoryPhi *MP = cast<MemoryPhi>(DefiningAccess); 506 MemoryPhi *MP = cast<MemoryPhi>(DefiningAccess); 1436 MemoryPhi *Phi = MSSA.getMemoryAccess(Exit); 1510 MemoryPhi *Phi = MSSA.getMemoryAccess(Exit); 1579 MemoryPhi *MPC = MSSA.getMemoryAccess(CBlock); 1581 MemoryPhi *MPD = MSSA.getMemoryAccess(DBlock); 1583 MemoryPhi *MPE = MSSA.getMemoryAccess(EBlock);usr/include/c++/7.4.0/type_traits
1983 { typedef _Up type; };
utils/unittest/googletest/include/gtest/gtest-printers.h407 T* p, ::std::ostream* os) { 416 if (IsTrue(ImplicitlyConvertible<T*, const void*>::value)) {