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

Derived Classes

include/llvm/Analysis/MemorySSA.h
  319 class MemoryUse final : public MemoryUseOrDef {
  375 class MemoryDef final : public MemoryUseOrDef {

References

include/llvm/Analysis/MemorySSA.h
  319 class MemoryUse final : public MemoryUseOrDef {
  375 class MemoryDef final : public MemoryUseOrDef {
  429   static Use *op_begin(MemoryUseOrDef *MUD) {
  435   static Use *op_end(MemoryUseOrDef *MUD) {
  441   static unsigned operands(const MemoryUseOrDef *MUD) {
  720   MemoryUseOrDef *getMemoryAccess(const Instruction *I) const {
  721     return cast_or_null<MemoryUseOrDef>(ValueToMemoryAccess.lookup(I));
  818   void moveTo(MemoryUseOrDef *What, BasicBlock *BB, AccessList::iterator Where);
  833   MemoryUseOrDef *createDefinedAccess(Instruction *, MemoryAccess *,
  834                                       const MemoryUseOrDef *Template = nullptr,
  859   MemoryUseOrDef *createNewAccess(Instruction *, AliasAnalysisType *,
  860                                   const MemoryUseOrDef *Template = nullptr);
  908   static bool defClobbersUseOrDef(MemoryDef *MD, const MemoryUseOrDef *MU,
 1113     return cast<MemoryUseOrDef>(Access)->getDefiningAccess();
 1279     if (auto *MUD = dyn_cast<MemoryUseOrDef>(MA)) {
 1279     if (auto *MUD = dyn_cast<MemoryUseOrDef>(MA)) {
include/llvm/Analysis/MemorySSAUpdater.h
  141   void moveBefore(MemoryUseOrDef *What, MemoryUseOrDef *Where);
  141   void moveBefore(MemoryUseOrDef *What, MemoryUseOrDef *Where);
  142   void moveAfter(MemoryUseOrDef *What, MemoryUseOrDef *Where);
  142   void moveAfter(MemoryUseOrDef *What, MemoryUseOrDef *Where);
  143   void moveToPlace(MemoryUseOrDef *What, BasicBlock *BB,
  217   MemoryUseOrDef *createMemoryAccessBefore(Instruction *I,
  219                                            MemoryUseOrDef *InsertPt);
  220   MemoryUseOrDef *createMemoryAccessAfter(Instruction *I,
  265   void moveTo(MemoryUseOrDef *What, BasicBlock *BB, WhereType Where);
include/llvm/Support/Casting.h
   57   static inline bool doit(const From &Val) {
   58     return To::classof(&Val);
   66   static inline bool doit(const From &) { return true; }
   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
  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);
  305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  306 cast_or_null(Y *Val) {
  309   return cast<X>(Val);
  331                             typename cast_retty<X, const Y>::ret_type>::type
  337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
  338   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  338   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  342 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) {
  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;
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  367 dyn_cast_or_null(Y *Val) {
lib/Analysis/AliasSetTracker.cpp
  549         if (auto *MUD = dyn_cast<MemoryUseOrDef>(&Access))
lib/Analysis/LoopInfo.cpp
  107     if (auto *MUD = MSSAU->getMemorySSA()->getMemoryAccess(I))
lib/Analysis/MemorySSA.cpp
  132   MemoryLocOrCall(MemoryUseOrDef *MUD)
  134   MemoryLocOrCall(const MemoryUseOrDef *MUD)
  315                                              const MemoryUseOrDef *MU,
  328 bool MemorySSAUtil::defClobbersUseOrDef(MemoryDef *MD, const MemoryUseOrDef *MU,
 1043     if (auto *MUD = dyn_cast<MemoryUseOrDef>(MA))
 1043     if (auto *MUD = dyn_cast<MemoryUseOrDef>(MA))
 1079     if (auto *MUD = dyn_cast<MemoryUseOrDef>(MA))
 1079     if (auto *MUD = dyn_cast<MemoryUseOrDef>(MA))
 1120       if (MemoryUseOrDef *MUD = dyn_cast<MemoryUseOrDef>(&L)) {
 1120       if (MemoryUseOrDef *MUD = dyn_cast<MemoryUseOrDef>(&L)) {
 1216     if (auto *UseOrDef = dyn_cast<MemoryUseOrDef>(AI))
 1216     if (auto *UseOrDef = dyn_cast<MemoryUseOrDef>(AI))
 1526       MemoryUseOrDef *MUD = createNewAccess(&I, &BAA);
 1669 void MemorySSA::moveTo(MemoryUseOrDef *What, BasicBlock *BB,
 1700 MemoryUseOrDef *MemorySSA::createDefinedAccess(Instruction *I,
 1702                                                const MemoryUseOrDef *Template,
 1705   MemoryUseOrDef *NewAccess = createNewAccess(I, AA, Template);
 1730 MemoryUseOrDef *MemorySSA::createNewAccess(Instruction *I,
 1732                                            const MemoryUseOrDef *Template) {
 1780   MemoryUseOrDef *MUD;
 1792   if (isa<MemoryUseOrDef>(Replacee))
 1811   if (auto *MUD = dyn_cast<MemoryUseOrDef>(MA))
 1811   if (auto *MUD = dyn_cast<MemoryUseOrDef>(MA))
 1818   if (const auto *MUD = dyn_cast<MemoryUseOrDef>(MA))
 1818   if (const auto *MUD = dyn_cast<MemoryUseOrDef>(MA))
 2340   auto *StartingUseOrDef = cast<MemoryUseOrDef>(StartingAccess);
 2340   auto *StartingUseOrDef = cast<MemoryUseOrDef>(StartingAccess);
 2377   auto *StartingAccess = dyn_cast<MemoryUseOrDef>(MA);
 2377   auto *StartingAccess = dyn_cast<MemoryUseOrDef>(MA);
 2453   if (auto *Use = dyn_cast<MemoryUseOrDef>(MA))
 2453   if (auto *Use = dyn_cast<MemoryUseOrDef>(MA))
 2460   if (auto *Use = dyn_cast<MemoryUseOrDef>(StartingAccess))
 2460   if (auto *Use = dyn_cast<MemoryUseOrDef>(StartingAccess))
lib/Analysis/MemorySSAUpdater.cpp
  590     if (const MemoryUseOrDef *MUD = dyn_cast<MemoryUseOrDef>(&MA)) {
  590     if (const MemoryUseOrDef *MUD = dyn_cast<MemoryUseOrDef>(&MA)) {
  681       if (MemoryUseOrDef *IncMUD = dyn_cast<MemoryUseOrDef>(IncomingAccess)) {
  681       if (MemoryUseOrDef *IncMUD = dyn_cast<MemoryUseOrDef>(IncomingAccess)) {
 1114               cast<MemoryUseOrDef>(Usr)->resetOptimized();
 1126 void MemorySSAUpdater::moveTo(MemoryUseOrDef *What, BasicBlock *BB,
 1151 void MemorySSAUpdater::moveBefore(MemoryUseOrDef *What, MemoryUseOrDef *Where) {
 1151 void MemorySSAUpdater::moveBefore(MemoryUseOrDef *What, MemoryUseOrDef *Where) {
 1156 void MemorySSAUpdater::moveAfter(MemoryUseOrDef *What, MemoryUseOrDef *Where) {
 1156 void MemorySSAUpdater::moveAfter(MemoryUseOrDef *What, MemoryUseOrDef *Where) {
 1160 void MemorySSAUpdater::moveToPlace(MemoryUseOrDef *What, BasicBlock *BB,
 1179     auto *MUD = cast<MemoryUseOrDef>(FirstInNew);
 1179     auto *MUD = cast<MemoryUseOrDef>(FirstInNew);
 1182       MemoryUseOrDef *NextMUD = (!Accs || NextIt == Accs->end())
 1184                                     : cast<MemoryUseOrDef>(&*NextIt);
 1289     NewDefTarget = cast<MemoryUseOrDef>(MA)->getDefiningAccess();
 1311       if (auto *MUD = dyn_cast<MemoryUseOrDef>(U.getUser()))
 1311       if (auto *MUD = dyn_cast<MemoryUseOrDef>(U.getUser()))
 1417   MemoryUseOrDef *NewAccess = MSSA->createDefinedAccess(I, Definition);
 1422 MemoryUseOrDef *MemorySSAUpdater::createMemoryAccessBefore(
 1423     Instruction *I, MemoryAccess *Definition, MemoryUseOrDef *InsertPt) {
 1426   MemoryUseOrDef *NewAccess = MSSA->createDefinedAccess(I, Definition);
 1432 MemoryUseOrDef *MemorySSAUpdater::createMemoryAccessAfter(
 1436   MemoryUseOrDef *NewAccess = MSSA->createDefinedAccess(I, Definition);
lib/Transforms/Scalar/EarlyCSE.cpp
  769   auto *EarlierMA = MSSA->getMemoryAccess(EarlierInst);
  772   auto *LaterMA = MSSA->getMemoryAccess(LaterInst);
lib/Transforms/Scalar/GVNHoist.cpp
  518                        MemoryUseOrDef *U, InsKind K, int &NBBsOnAllPaths) {
  535       if (auto *UD = dyn_cast<MemoryUseOrDef>(D))
  535       if (auto *UD = dyn_cast<MemoryUseOrDef>(D))
  607         MemoryUseOrDef *UD = MSSA->getMemoryAccess(Insn);
  937   void raMPHIuw(MemoryUseOrDef *NewMemAcc) {
  955     MemoryUseOrDef *NewMemAcc = MSSA->getMemoryAccess(Repl);
lib/Transforms/Scalar/LICM.cpp
 1071         const auto *MUD = cast<MemoryUseOrDef>(&Acc);
 1071         const auto *MUD = cast<MemoryUseOrDef>(&Acc);
 1236       auto *SIMD = MSSA->getMemoryAccess(SI);
 1449     if (MemoryUseOrDef *OldMemAcc = cast_or_null<MemoryUseOrDef>(
 1449     if (MemoryUseOrDef *OldMemAcc = cast_or_null<MemoryUseOrDef>(
lib/Transforms/Scalar/NewGVN.cpp
  555   DenseMap<const Instruction *, MemoryUseOrDef *> TempToMemory;
  833   MemoryUseOrDef *getMemoryAccess(const Instruction *) const;
  855     return isa<MemoryUseOrDef>(MA)
  856                ? InstrToDFSNum(cast<MemoryUseOrDef>(MA)->getMemoryInst())
  905 MemoryUseOrDef *NewGVN::getMemoryAccess(const Instruction *I) const {
  906   auto *Result = MSSA->getMemoryAccess(I);
 1367   auto *StoreAccess = getMemoryAccess(SI);
 1642     if (auto *MA = MSSA->getMemoryAccess(CI)) {
 2539     auto *MA = getMemoryAccess(TI);
 2705   auto *MemAccess = getMemoryAccess(I);
 3219     if (auto *FirstMUD = dyn_cast<MemoryUseOrDef>(KV.first)) {
 3220       auto *SecondMUD = dyn_cast<MemoryUseOrDef>(KV.second->getMemoryLeader());
unittests/Analysis/MemorySSATest.cpp
  356   auto *EntryStoreAccess = MSSA.getMemoryAccess(EntryStore);
  357   auto *SideStoreAccess = MSSA.getMemoryAccess(SideStore);
  358   auto *NewStoreAccess = Updater.createMemoryAccessAfter(
  401   auto *EntryStoreAccess = MSSA.getMemoryAccess(EntryStore);
  402   auto *SideStoreAccess = MSSA.getMemoryAccess(SideStore);
  445   auto *EntryStoreAccess = MSSA.getMemoryAccess(EntryStore);
  446   auto *SideStoreAccess = MSSA.getMemoryAccess(SideStore);
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)) {