reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

include/llvm/ADT/DenseMapInfo.h
   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.cpp
  297   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.cpp
   98   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.h
  407                     T* p, ::std::ostream* os) {
  416     if (IsTrue(ImplicitlyConvertible<T*, const void*>::value)) {