Home
last modified time | relevance | path

Searched refs:MemoryAccess (Results 1 – 25 of 80) sorted by relevance

1234

/external/llvm/include/llvm/Transforms/Utils/
DMemorySSA.h110 class MemoryAccess; variable
115 using memoryaccess_def_iterator = memoryaccess_def_iterator_base<MemoryAccess>;
117 memoryaccess_def_iterator_base<const MemoryAccess>;
121 class MemoryAccess : public User, public ilist_node<MemoryAccess> {
128 static inline bool classof(const MemoryAccess *) { return true; } in classof() argument
134 ~MemoryAccess() override;
163 MemoryAccess(LLVMContext &C, unsigned Vty, BasicBlock *BB, in MemoryAccess() function
168 MemoryAccess(const MemoryAccess &);
169 void operator=(const MemoryAccess &);
174 struct ilist_traits<MemoryAccess> : public ilist_default_traits<MemoryAccess> {
[all …]
/external/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Analysis/
DMemorySSA.h113 class MemoryAccess; variable
132 using memoryaccess_def_iterator = memoryaccess_def_iterator_base<MemoryAccess>;
134 memoryaccess_def_iterator_base<const MemoryAccess>;
138 class MemoryAccess
140 public ilist_node<MemoryAccess, ilist_tag<MSSAHelpers::AllAccessTag>>,
141 public ilist_node<MemoryAccess, ilist_tag<MSSAHelpers::DefsOnlyTag>> {
144 ilist_node<MemoryAccess, ilist_tag<MSSAHelpers::AllAccessTag>>;
146 ilist_node<MemoryAccess, ilist_tag<MSSAHelpers::DefsOnlyTag>>;
148 MemoryAccess(const MemoryAccess &) = delete;
149 MemoryAccess &operator=(const MemoryAccess &) = delete;
[all …]
DMemorySSAUpdater.h60 class MemoryAccess; variable
65 using PhiToDefMap = SmallDenseMap<MemoryPhi *, MemoryAccess *>;
203 MemoryAccess *createMemoryAccessInBB(Instruction *I, MemoryAccess *Definition,
218 MemoryAccess *Definition,
221 MemoryAccess *Definition,
222 MemoryAccess *InsertPt);
230 void removeMemoryAccess(MemoryAccess *, bool OptimizePhis = false);
236 if (MemoryAccess *MA = MSSA->getMemoryAccess(I))
269 MemoryAccess *getPreviousDef(MemoryAccess *);
270 MemoryAccess *getPreviousDefInBlock(MemoryAccess *);
[all …]
/external/llvm-project/llvm/include/llvm/Analysis/
DMemorySSA.h114 class MemoryAccess; variable
133 using memoryaccess_def_iterator = memoryaccess_def_iterator_base<MemoryAccess>;
135 memoryaccess_def_iterator_base<const MemoryAccess>;
139 class MemoryAccess
141 public ilist_node<MemoryAccess, ilist_tag<MSSAHelpers::AllAccessTag>>,
142 public ilist_node<MemoryAccess, ilist_tag<MSSAHelpers::DefsOnlyTag>> {
145 ilist_node<MemoryAccess, ilist_tag<MSSAHelpers::AllAccessTag>>;
147 ilist_node<MemoryAccess, ilist_tag<MSSAHelpers::DefsOnlyTag>>;
149 MemoryAccess(const MemoryAccess &) = delete;
150 MemoryAccess &operator=(const MemoryAccess &) = delete;
[all …]
DMemorySSAUpdater.h53 using PhiToDefMap = SmallDenseMap<MemoryPhi *, MemoryAccess *>;
189 MemoryAccess *createMemoryAccessInBB(Instruction *I, MemoryAccess *Definition,
204 MemoryAccess *Definition,
207 MemoryAccess *Definition,
208 MemoryAccess *InsertPt);
216 void removeMemoryAccess(MemoryAccess *, bool OptimizePhis = false);
222 if (MemoryAccess *MA = MSSA->getMemoryAccess(I))
255 MemoryAccess *getPreviousDef(MemoryAccess *);
256 MemoryAccess *getPreviousDefInBlock(MemoryAccess *);
257 MemoryAccess *
[all …]
/external/llvm/lib/Transforms/Utils/
DMemorySSA.cpp79 if (MemoryAccess *MA = MSSA->getMemoryAccess(BB)) in emitBasicBlockStartAnnot()
85 if (MemoryAccess *MA = MSSA->getMemoryAccess(I)) in emitInstructionAnnot()
128 MemoryAccess *getClobberingMemoryAccess(const Instruction *) override;
129 MemoryAccess *getClobberingMemoryAccess(MemoryAccess *,
131 void invalidateInfo(MemoryAccess *) override;
135 MemoryAccess *doCacheLookup(const MemoryAccess *, const UpwardsMemoryQuery &,
138 void doCacheInsert(const MemoryAccess *, MemoryAccess *,
141 void doCacheRemove(const MemoryAccess *, const UpwardsMemoryQuery &,
145 MemoryAccessPair UpwardsDFSWalk(MemoryAccess *, const MemoryLocation &,
147 MemoryAccess *getClobberingMemoryAccess(MemoryAccess *, UpwardsMemoryQuery &);
[all …]
/external/swiftshader/third_party/llvm-10.0/llvm/lib/Analysis/
DMemorySSA.cpp109 if (MemoryAccess *MA = MSSA->getMemoryAccess(BB)) in emitBasicBlockStartAnnot()
115 if (MemoryAccess *MA = MSSA->getMemoryAccess(I)) in emitInstructionAnnot()
345 const MemoryAccess *OriginalAccess = nullptr;
351 UpwardsMemoryQuery(const Instruction *Inst, const MemoryAccess *Access) in UpwardsMemoryQuery()
400 checkClobberSanity(const MemoryAccess *Start, MemoryAccess *ClobberAt, in checkClobberSanity()
469 upward_defs_begin({const_cast<MemoryAccess *>(MA), MAP.second}), in checkClobberSanity()
502 MemoryAccess *First;
503 MemoryAccess *Last;
506 DefPath(const MemoryLocation &Loc, MemoryAccess *First, MemoryAccess *Last, in DefPath()
510 DefPath(const MemoryLocation &Loc, MemoryAccess *Init, in DefPath()
[all …]
DMemorySSAUpdater.cpp41 MemoryAccess *MemorySSAUpdater::getPreviousDefRecursive( in getPreviousDefRecursive()
43 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> &CachedPreviousDef) { in getPreviousDefRecursive()
57 MemoryAccess *Result = getPreviousDefFromEnd(Pred, CachedPreviousDef); in getPreviousDefRecursive()
66 MemoryAccess *Result = MSSA->createMemoryPhi(BB); in getPreviousDefRecursive()
73 SmallVector<TrackingVH<MemoryAccess>, 8> PhiOps; in getPreviousDefRecursive()
79 MemoryAccess *SingleAccess = nullptr; in getPreviousDefRecursive()
142 MemoryAccess *MemorySSAUpdater::getPreviousDef(MemoryAccess *MA) { in getPreviousDef()
145 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> CachedPreviousDef; in getPreviousDef()
152 MemoryAccess *MemorySSAUpdater::getPreviousDefInBlock(MemoryAccess *MA) { in getPreviousDefInBlock()
168 return cast<MemoryAccess>(&U); in getPreviousDefInBlock()
[all …]
/external/llvm-project/llvm/lib/Analysis/
DMemorySSA.cpp115 if (MemoryAccess *MA = MSSA->getMemoryAccess(BB)) in emitBasicBlockStartAnnot()
121 if (MemoryAccess *MA = MSSA->getMemoryAccess(I)) in emitInstructionAnnot()
345 const MemoryAccess *OriginalAccess = nullptr;
351 UpwardsMemoryQuery(const Instruction *Inst, const MemoryAccess *Access) in UpwardsMemoryQuery()
403 checkClobberSanity(const MemoryAccess *Start, MemoryAccess *ClobberAt, in checkClobberSanity()
474 {const_cast<MemoryAccess *>(MA), MAP.second}, in checkClobberSanity()
511 MemoryAccess *First;
512 MemoryAccess *Last;
515 DefPath(const MemoryLocation &Loc, MemoryAccess *First, MemoryAccess *Last, in DefPath()
519 DefPath(const MemoryLocation &Loc, MemoryAccess *Init, in DefPath()
[all …]
DMemorySSAUpdater.cpp43 MemoryAccess *MemorySSAUpdater::getPreviousDefRecursive( in getPreviousDefRecursive()
45 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> &CachedPreviousDef) { in getPreviousDefRecursive()
59 MemoryAccess *Result = getPreviousDefFromEnd(Pred, CachedPreviousDef); in getPreviousDefRecursive()
68 MemoryAccess *Result = MSSA->createMemoryPhi(BB); in getPreviousDefRecursive()
75 SmallVector<TrackingVH<MemoryAccess>, 8> PhiOps; in getPreviousDefRecursive()
81 MemoryAccess *SingleAccess = nullptr; in getPreviousDefRecursive()
144 MemoryAccess *MemorySSAUpdater::getPreviousDef(MemoryAccess *MA) { in getPreviousDef()
147 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> CachedPreviousDef; in getPreviousDef()
154 MemoryAccess *MemorySSAUpdater::getPreviousDefInBlock(MemoryAccess *MA) { in getPreviousDefInBlock()
170 return cast<MemoryAccess>(&U); in getPreviousDefInBlock()
[all …]
/external/llvm-project/polly/include/polly/
DScopInfo.h47 class MemoryAccess; variable
189 using AccFuncVector = std::vector<std::unique_ptr<MemoryAccess>>;
422 class MemoryAccess {
706 MemoryAccess(ScopStmt *Stmt, Instruction *AccessInst, AccessType AccType,
721 MemoryAccess(ScopStmt *Stmt, AccessType AccType, isl::map AccRel);
723 MemoryAccess(const MemoryAccess &) = delete;
724 MemoryAccess &operator=(const MemoryAccess &) = delete;
725 ~MemoryAccess();
756 bool isRead() const { return AccType == MemoryAccess::READ; } in isRead()
759 bool isMustWrite() const { return AccType == MemoryAccess::MUST_WRITE; } in isMustWrite()
[all …]
DZoneAlgo.h33 class MemoryAccess; variable
186 void addArrayReadAccess(MemoryAccess *MA);
193 isl::union_map getWrittenValue(MemoryAccess *MA, isl::map AccRel);
195 void addArrayWriteAccess(MemoryAccess *MA);
231 isl::map getScatterFor(MemoryAccess *MA) const;
243 isl::set getDomainFor(MemoryAccess *MA) const;
248 isl::map getAccessRelationFor(MemoryAccess *MA) const;
348 bool isCompatibleAccess(MemoryAccess *MA);
365 bool isNormalizable(MemoryAccess *MA);
DScheduleOptimizer.h44 class MemoryAccess; variable
61 MemoryAccess *A = nullptr;
62 MemoryAccess *B = nullptr;
63 MemoryAccess *ReadFromC = nullptr;
64 MemoryAccess *WriteToC = nullptr;
DScopBuilder.h426 using AliasGroupTy = SmallVector<MemoryAccess *, 4>;
555 MemoryAccess *addMemoryAccess(ScopStmt *Stmt, Instruction *Inst,
556 MemoryAccess::AccessType AccType,
577 MemoryAccess::AccessType AccType, Value *BaseAddress,
704 bool canAlwaysBeHoisted(MemoryAccess *MA, bool StmtInvalidCtxIsEmpty,
714 bool hasNonHoistableBasePtrInScop(MemoryAccess *MA, isl::union_map Writes);
723 isl::set getNonHoistableCtx(MemoryAccess *Access, isl::union_map Writes);
735 void collectCandidateReductionLoads(MemoryAccess *StoreMA,
736 SmallVectorImpl<MemoryAccess *> &Loads);
/external/llvm-project/polly/lib/Transform/
DSimplify.cpp71 static bool isImplicitRead(MemoryAccess *MA) { in isImplicitRead()
75 static bool isExplicitAccess(MemoryAccess *MA) { in isExplicitAccess()
79 static bool isImplicitWrite(MemoryAccess *MA) { in isImplicitWrite()
164 SmallVector<MemoryAccess *, 32> Accesses(getAccessesInOrder(Stmt)); in removeOverwrites()
246 SmallVector<MemoryAccess *, 32> Accesses(getAccessesInOrder(Stmt)); in coalesceWrites()
247 for (MemoryAccess *MA : reverse(Accesses)) { in coalesceWrites()
308 MemoryAccess *OtherMA = (MemoryAccess *)Map.get_space() in coalesceWrites()
346 SmallPtrSet<MemoryAccess *, 2> TouchedAccesses; in coalesceWrites()
349 MemoryAccess *MA = (MemoryAccess *)Map.get_space() in coalesceWrites()
359 MemoryAccess *MA = (MemoryAccess *)FutureWrite.get_space() in coalesceWrites()
[all …]
DMaximalStaticExpansion.cpp74 SmallPtrSetImpl<MemoryAccess *> &Writes,
75 SmallPtrSetImpl<MemoryAccess *> &Reads, Scop &S,
82 ScopArrayInfo *expandAccess(Scop &S, MemoryAccess *MA);
91 MemoryAccess *MA);
102 void mapAccess(Scop &S, SmallPtrSetImpl<MemoryAccess *> &Accesses,
133 Scop &S, const isl::union_map &Dependences, MemoryAccess *MA) { in filterDependences()
171 const ScopArrayInfo *SAI, SmallPtrSetImpl<MemoryAccess *> &Writes, in isExpandable()
172 SmallPtrSetImpl<MemoryAccess *> &Reads, Scop &S, in isExpandable()
215 for (MemoryAccess *MA : Stmt) { in isExpandable()
315 SmallPtrSetImpl<MemoryAccess *> &Accesses, in mapAccess()
[all …]
/external/llvm-project/polly/lib/Analysis/
DScopInfo.cpp413 void MemoryAccess::wrapConstantDimensions() { in wrapConstantDimensions()
465 void MemoryAccess::updateDimensionality() { in updateDimensionality()
552 MemoryAccess::getReductionOperatorStr(MemoryAccess::ReductionType RT) { in getReductionOperatorStr()
554 case MemoryAccess::RT_NONE: in getReductionOperatorStr()
557 case MemoryAccess::RT_ADD: in getReductionOperatorStr()
559 case MemoryAccess::RT_MUL: in getReductionOperatorStr()
561 case MemoryAccess::RT_BOR: in getReductionOperatorStr()
563 case MemoryAccess::RT_BXOR: in getReductionOperatorStr()
565 case MemoryAccess::RT_BAND: in getReductionOperatorStr()
571 const ScopArrayInfo *MemoryAccess::getOriginalScopArrayInfo() const { in getOriginalScopArrayInfo()
[all …]
DScopBuilder.cpp1610 enum MemoryAccess::AccessType AccType = in buildAccessMultiDimFixed()
1611 isa<LoadInst>(Inst) ? MemoryAccess::READ : MemoryAccess::MUST_WRITE; in buildAccessMultiDimFixed()
1683 enum MemoryAccess::AccessType AccType = in buildAccessMultiDimParam()
1684 isa<LoadInst>(Inst) ? MemoryAccess::READ : MemoryAccess::MUST_WRITE; in buildAccessMultiDimParam()
1765 addArrayAccess(Stmt, Inst, MemoryAccess::MUST_WRITE, DestPtrSCEV->getValue(), in buildAccessMemIntrinsic()
1787 addArrayAccess(Stmt, Inst, MemoryAccess::READ, SrcPtrSCEV->getValue(), in buildAccessMemIntrinsic()
1828 auto AccType = ReadOnly ? MemoryAccess::READ : MemoryAccess::MAY_WRITE; in buildAccessCallInst()
1853 enum MemoryAccess::AccessType AccType = in buildAccessSingleDim()
1854 isa<LoadInst>(Inst) ? MemoryAccess::READ : MemoryAccess::MUST_WRITE; in buildAccessSingleDim()
1886 if (!IsAffine && AccType == MemoryAccess::MUST_WRITE) in buildAccessSingleDim()
[all …]
/external/llvm-project/polly/lib/Support/
DVirtualInstruction.cpp37 MemoryAccess *IncomingMA = nullptr; in create()
80 MemoryAccess *InputMA = nullptr; in create()
191 static bool isEscaping(MemoryAccess *MA) { in isEscaping()
228 SmallVectorImpl<MemoryAccess *> &RootAccs, in addAccessRoots()
258 SmallVectorImpl<MemoryAccess *> &RootAccs, bool Local) { in addRoots()
277 ArrayRef<MemoryAccess *> RootAccs, in walkReachable()
279 DenseSet<MemoryAccess *> &UsedAccs, in walkReachable()
285 SmallVector<MemoryAccess *, 32> WorklistAccs; in walkReachable()
333 MemoryAccess *DefAcc = S->getValueDef(SAI); in walkReachable()
387 if (MemoryAccess *PHIRead = Stmt->lookupPHIReadOf(PHI)) in walkReachable()
[all …]
/external/llvm/unittests/Transforms/Utils/
DMemorySSA.cpp104 MemoryAccess *DefiningAccess = LoadAccess->getDefiningAccess(); in TEST_F()
135 MemoryAccess *DefiningAccess = LoadAccess->getDefiningAccess(); in TEST_F()
142 EXPECT_TRUE(MSSA.isLiveOnEntryDef(cast<MemoryAccess>(Op.get()))); in TEST_F()
181 MemoryAccess *DefiningAccess = LoadAccess->getDefiningAccess(); in TEST_F()
199 MemoryAccess *Operand = cast<MemoryAccess>(&*Op); in TEST_F()
239 MemoryAccess *DefiningAccess = in TEST_F()
241 MemoryAccess *WalkerClobber = Walker->getClobberingMemoryAccess(V); in TEST_F()
267 MemoryAccess *LoadClobber = Walker->getClobberingMemoryAccess(LI); in TEST_F()
296 MemoryAccess *StoreAccess = MSSA.getMemoryAccess(SI); in TEST_F()
298 MemoryAccess *Clobber = in TEST_F()
[all …]
/external/llvm-project/llvm/unittests/Analysis/
DMemorySSATest.cpp106 MemoryAccess *DefiningAccess = LoadAccess->getDefiningAccess(); in TEST_F()
137 MemoryAccess *EntryStoreAccess = Updater.createMemoryAccessInBB( in TEST_F()
161 MemoryAccess *LeftStoreAccess = Updater.createMemoryAccessInBB( in TEST_F()
186 MemoryAccess *SecondEntryStoreAccess = Updater.createMemoryAccessInBB( in TEST_F()
227 MemoryAccess *StoreAccess = in TEST_F()
243 MemoryAccess *DefiningAccess = LoadAccess->getDefiningAccess(); in TEST_F()
284 MemoryAccess * NewLoadAccess = in TEST_F()
321 MemoryAccess *EntryStoreAccess = MSSA.getMemoryAccess(EntryStore); in TEST_F()
322 MemoryAccess *SideStoreAccess = MSSA.getMemoryAccess(SideStore); in TEST_F()
323 MemoryAccess *NewStoreAccess = Updater.createMemoryAccessAfter( in TEST_F()
[all …]
/external/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Scalar/
DNewGVN.cpp329 const MemoryAccess *getMemoryLeader() const { return RepMemoryAccess; } in getMemoryLeader()
330 void setMemoryLeader(const MemoryAccess *Leader) { RepMemoryAccess = Leader; } in setMemoryLeader()
410 const MemoryAccess *RepMemoryAccess = nullptr;
582 mutable DenseMap<const MemoryAccess *, SmallPtrSet<MemoryAccess *, 2>>
590 DenseMap<const MemoryAccess *, CongruenceClass *> MemoryAccessToClass;
686 const MemoryAccess *) const;
688 const MemoryAccess *) const;
690 const MemoryAccess *) const;
702 CongruenceClass *createMemoryClass(MemoryAccess *MA) { in createMemoryClass()
708 CongruenceClass *ensureLeaderOfMemoryClass(MemoryAccess *MA) { in ensureLeaderOfMemoryClass()
[all …]
/external/llvm-project/llvm/lib/Transforms/Scalar/
DNewGVN.cpp330 const MemoryAccess *getMemoryLeader() const { return RepMemoryAccess; } in getMemoryLeader()
331 void setMemoryLeader(const MemoryAccess *Leader) { RepMemoryAccess = Leader; } in setMemoryLeader()
411 const MemoryAccess *RepMemoryAccess = nullptr;
584 mutable DenseMap<const MemoryAccess *, SmallPtrSet<MemoryAccess *, 2>>
592 DenseMap<const MemoryAccess *, CongruenceClass *> MemoryAccessToClass;
689 const MemoryAccess *) const;
691 const MemoryAccess *) const;
693 const MemoryAccess *) const;
705 CongruenceClass *createMemoryClass(MemoryAccess *MA) { in createMemoryClass()
711 CongruenceClass *ensureLeaderOfMemoryClass(MemoryAccess *MA) { in ensureLeaderOfMemoryClass()
[all …]
/external/llvm-project/llvm/docs/
DMemorySSA.rst41 structure that maps ``Instruction``\ s to ``MemoryAccess``\ es, which are
44 Each ``MemoryAccess`` can be one of three types:
73 ``BasicBlock``, the block's top ``MemoryAccess`` will be a
88 It dominates every ``MemoryAccess`` in the function that ``MemorySSA`` is being
97 The operands of a given ``MemoryAccess`` are all (potential) clobbers of said
98 ``MemoryAccess``, and the value produced by a ``MemoryAccess`` can act as a clobber
99 for other ``MemoryAccess``\ es.
101 If a ``MemoryAccess`` is a *clobber* of another, it means that these two
102 ``MemoryAccess``\ es may access the same memory. For example, ``x = MemoryDef(y)``
114 In that view, operands of a given ``MemoryAccess`` are the version
[all …]
/external/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/
DTargetProcessControl.h35 class MemoryAccess {
40 virtual ~MemoryAccess();
108 MemoryAccess &getMemoryAccess() const { return *MemAccess; } in getMemoryAccess()
153 MemoryAccess *MemAccess = nullptr;
159 private TargetProcessControl::MemoryAccess {

1234