Home
last modified time | relevance | path

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

12

/openbsd-src/gnu/llvm/llvm/include/llvm/Analysis/
H A DMemorySSA.h115 class MemoryAccess; variable
136 using memoryaccess_def_iterator = memoryaccess_def_iterator_base<MemoryAccess>;
138 memoryaccess_def_iterator_base<const MemoryAccess>;
142 class MemoryAccess
144 public ilist_node<MemoryAccess, ilist_tag<MSSAHelpers::AllAccessTag>>,
145 public ilist_node<MemoryAccess, ilist_tag<MSSAHelpers::DefsOnlyTag>> {
148 ilist_node<MemoryAccess, ilist_tag<MSSAHelpers::AllAccessTag>>;
150 ilist_node<MemoryAccess, ilist_tag<MSSAHelpers::DefsOnlyTag>>;
152 MemoryAccess(const MemoryAccess &) = delete;
153 MemoryAccess &operator=(const MemoryAccess &) = delete;
[all …]
H A DMemorySSAUpdater.h51 using PhiToDefMap = SmallDenseMap<MemoryPhi *, MemoryAccess *>;
190 MemoryAccess *createMemoryAccessInBB(Instruction *I, MemoryAccess *Definition,
205 MemoryAccess *Definition,
208 MemoryAccess *Definition,
209 MemoryAccess *InsertPt);
217 void removeMemoryAccess(MemoryAccess *, bool OptimizePhis = false);
223 if (MemoryAccess *MA = MSSA->getMemoryAccess(I))
251 MemoryAccess *getPreviousDef(MemoryAccess *);
252 MemoryAccess *getPreviousDefInBlock(MemoryAccess *);
253 MemoryAccess *
[all …]
/openbsd-src/gnu/llvm/llvm/lib/Analysis/
H A DMemorySSA.cpp110 if (MemoryAccess *MA = MSSA->getMemoryAccess(BB)) in emitBasicBlockStartAnnot()
116 if (MemoryAccess *MA = MSSA->getMemoryAccess(I)) in emitInstructionAnnot()
134 if (MemoryAccess *MA = MSSA->getMemoryAccess(BB)) in emitBasicBlockStartAnnot()
140 if (MemoryAccess *MA = MSSA->getMemoryAccess(I)) { in emitInstructionAnnot()
141 MemoryAccess *Clobber = Walker->getClobberingMemoryAccess(MA, BAA); in emitInstructionAnnot()
360 const MemoryAccess *OriginalAccess = nullptr;
365 UpwardsMemoryQuery(const Instruction *Inst, const MemoryAccess *Access) in UpwardsMemoryQuery()
400 checkClobberSanity(const MemoryAccess *Start, MemoryAccess *ClobberAt, in checkClobberSanity()
466 {const_cast<MemoryAccess *>(MA), MAP.second}, in checkClobberSanity()
503 MemoryAccess *First;
[all …]
H A DMemorySSAUpdater.cpp36 MemoryAccess *MemorySSAUpdater::getPreviousDefRecursive( in getPreviousDefRecursive()
38 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> &CachedPreviousDef) { in getPreviousDefRecursive()
52 MemoryAccess *Result = getPreviousDefFromEnd(Pred, CachedPreviousDef); in getPreviousDefRecursive()
61 MemoryAccess *Result = MSSA->createMemoryPhi(BB); in getPreviousDefRecursive()
68 SmallVector<TrackingVH<MemoryAccess>, 8> PhiOps; in getPreviousDefRecursive()
74 MemoryAccess *SingleAccess = nullptr; in getPreviousDefRecursive()
137 MemoryAccess *MemorySSAUpdater::getPreviousDef(MemoryAccess *MA) { in getPreviousDef()
140 DenseMap<BasicBlock *, TrackingVH<MemoryAccess>> CachedPreviousDef; in getPreviousDef()
147 MemoryAccess *MemorySSAUpdater::getPreviousDefInBlock(MemoryAccess *MA) { in getPreviousDefInBlock()
163 return cast<MemoryAccess>(&U); in getPreviousDefInBlock()
[all …]
/openbsd-src/gnu/llvm/compiler-rt/lib/tsan/rtl/
H A Dtsan_interface.inc22 MemoryAccess(cur_thread(), CALLERPC, (uptr)addr, 1, kAccessRead);
26 MemoryAccess(cur_thread(), CALLERPC, (uptr)addr, 2, kAccessRead);
30 MemoryAccess(cur_thread(), CALLERPC, (uptr)addr, 4, kAccessRead);
34 MemoryAccess(cur_thread(), CALLERPC, (uptr)addr, 8, kAccessRead);
42 MemoryAccess(cur_thread(), CALLERPC, (uptr)addr, 1, kAccessWrite);
46 MemoryAccess(cur_thread(), CALLERPC, (uptr)addr, 2, kAccessWrite);
50 MemoryAccess(cur_thread(), CALLERPC, (uptr)addr, 4, kAccessWrite);
54 MemoryAccess(cur_thread(), CALLERPC, (uptr)addr, 8, kAccessWrite);
62 MemoryAccess(cur_thread(), STRIP_PAC_PC(pc), (uptr)addr, 1, kAccessRead | kAccessExternalPC);
66 MemoryAccess(cur_thread(), STRIP_PAC_PC(pc), (uptr)addr, 2, kAccessRead | kAccessExternalPC);
[all …]
H A Dtsan_interface.cpp32 MemoryAccess(thr, pc_no_pac, (uptr)addr, 8, kAccessRead); in __tsan_read16_pc()
33 MemoryAccess(thr, pc_no_pac, (uptr)addr + 8, 8, kAccessRead); in __tsan_read16_pc()
39 MemoryAccess(thr, pc_no_pac, (uptr)addr, 8, kAccessWrite); in __tsan_write16_pc()
40 MemoryAccess(thr, pc_no_pac, (uptr)addr + 8, 8, kAccessWrite); in __tsan_write16_pc()
H A Dtsan_fd.cpp135 MemoryAccess(thr, pc, (uptr)d, 8, kAccessRead | kAccessSlotLocked); in init()
184 MemoryAccess(thr, pc, (uptr)d, 8, kAccessRead); in FdAcquire()
195 MemoryAccess(thr, pc, (uptr)d, 8, kAccessRead); in FdRelease()
207 MemoryAccess(thr, pc, (uptr)d, 8, kAccessRead); in FdAccess()
222 MemoryAccess(thr, pc, (uptr)d, 8, in FdClose()
234 MemoryAccess(thr, pc, (uptr)d, 8, in FdClose()
266 MemoryAccess(thr, pc, (uptr)od, 8, kAccessRead); in FdDup()
H A Dtsan_rtl_mutex.cpp89 MemoryAccess(thr, pc, addr, 1, kAccessWrite); in MutexCreate()
131 MemoryAccess(thr, pc, addr, 1, in MutexDestroy()
166 MemoryAccess(thr, pc, addr, 1, kAccessRead | kAccessAtomic); in MutexPostLock()
219 MemoryAccess(thr, pc, addr, 1, kAccessRead | kAccessAtomic); in MutexUnlock()
284 MemoryAccess(thr, pc, addr, 1, kAccessRead | kAccessAtomic); in MutexPostReadLock()
327 MemoryAccess(thr, pc, addr, 1, kAccessRead | kAccessAtomic); in MutexReadUnlock()
368 MemoryAccess(thr, pc, addr, 1, kAccessRead | kAccessAtomic); in MutexReadOrWriteUnlock()
H A Dtsan_external.cpp70 MemoryAccess(thr, CALLERPC, (uptr)addr, 1, typ); in ExternalAccess()
H A Dtsan_interface_atomic.cpp229 MemoryAccess(thr, pc, (uptr)a, AccessSize<T>(), in AtomicLoad()
245 MemoryAccess(thr, pc, (uptr)a, AccessSize<T>(), kAccessRead | kAccessAtomic); in AtomicLoad()
265 MemoryAccess(thr, pc, (uptr)a, AccessSize<T>(), kAccessWrite | kAccessAtomic); in AtomicStore()
286 MemoryAccess(thr, pc, (uptr)a, AccessSize<T>(), kAccessWrite | kAccessAtomic); in AtomicRMW()
414 MemoryAccess(thr, pc, (uptr)a, AccessSize<T>(), kAccessWrite | kAccessAtomic); in AtomicCAS()
/openbsd-src/gnu/llvm/llvm/docs/
H A 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 …]
/openbsd-src/gnu/llvm/llvm/lib/Transforms/Scalar/
H A DNewGVN.cpp330 const MemoryAccess *getMemoryLeader() const { return RepMemoryAccess; } in getMemoryLeader()
331 void setMemoryLeader(const MemoryAccess *Leader) { RepMemoryAccess = Leader; } in setMemoryLeader()
410 const MemoryAccess *RepMemoryAccess = nullptr;
583 mutable DenseMap<const MemoryAccess *, SmallPtrSet<MemoryAccess *, 2>>
591 DenseMap<const MemoryAccess *, CongruenceClass *> MemoryAccessToClass;
726 const MemoryAccess *) const;
728 const MemoryAccess *) const;
730 const MemoryAccess *) const;
742 CongruenceClass *createMemoryClass(MemoryAccess *MA) { in createMemoryClass()
748 CongruenceClass *ensureLeaderOfMemoryClass(MemoryAccess *MA) { in ensureLeaderOfMemoryClass()
[all …]
H A DDeadStoreElimination.cpp812 SmallPtrSet<MemoryAccess *, 4> SkipStores;
855 MemoryAccess *MA = MSSA.getMemoryAccess(&I); in DSEState()
1141 SmallVector<MemoryAccess *, 4> WorkList; in isWriteAtEndOfFunction()
1142 SmallPtrSet<MemoryAccess *, 8> Visited; in isWriteAtEndOfFunction()
1143 auto PushMemUses = [&WorkList, &Visited](MemoryAccess *Acc) { in isWriteAtEndOfFunction()
1147 WorkList.push_back(cast<MemoryAccess>(U.getUser())); in isWriteAtEndOfFunction()
1156 MemoryAccess *UseAccess = WorkList[I]; in isWriteAtEndOfFunction()
1299 std::optional<MemoryAccess *>
1300 getDomMemoryDef(MemoryDef *KillingDef, MemoryAccess *StartAccess, in getDomMemoryDef()
1309 MemoryAccess *Current = StartAccess; in getDomMemoryDef()
[all …]
H A DLoopInstSimplify.cpp137 if (MemoryAccess *MA = MSSA->getMemoryAccess(&I)) in simplifyLoopInst()
138 if (MemoryAccess *ReplacementMA = MSSA->getMemoryAccess(SimpleI)) in simplifyLoopInst()
H A DMemCpyOptimizer.cpp342 for (const MemoryAccess &MA : in accessedBetween()
371 [&AA, Loc](const MemoryAccess &Acc) { in writtenBetween()
381 MemoryAccess *Clobber = MSSA->getWalker()->getClobberingMemoryAccess( in writtenBetween()
1419 MemoryAccess *Clobber = MSSA->getWalker()->getClobberingMemoryAccess( in performMemCpyToMemSetOptzn()
1481 MemoryAccess *AnyClobber = MA->getDefiningAccess(); in processMemCpy()
1483 const MemoryAccess *DestClobber = in processMemCpy()
1496 MemoryAccess *SrcClobber = MSSA->getWalker()->getClobberingMemoryAccess( in processMemCpy()
1583 MemoryAccess *Clobber = MSSA->getWalker()->getClobberingMemoryAccess( in processByValArgument()
H A DLICM.cpp480 SmallVector<MemoryAccess *, 8> MSSAInsertPts; in runOnLoop()
1443 MemoryAccess *NewMemAcc = MSSAU.createMemoryAccessInBB( in cloneInstructionInExitBlock()
1784 SmallVectorImpl<MemoryAccess *> &MSSAInsertPts;
1817 SmallVectorImpl<MemoryAccess *> &MSSAIP, PredIteratorCache &PIC, in LoopPromoter()
1863 MemoryAccess *MSSAInsertPoint = MSSAInsertPts[i]; in insertStoresInLoopExitBlocks()
1864 MemoryAccess *NewMemAcc; in insertStoresInLoopExitBlocks()
1956 SmallVectorImpl<MemoryAccess *> &MSSAInsertPts, PredIteratorCache &PIC, in promoteLoopAccessesToScalars()
2233 MemoryAccess *PreheaderLoadMemoryAccess = MSSAU.createMemoryAccessInBB( in promoteLoopAccessesToScalars()
2336 MemoryAccess *Source; in pointerInvalidatedByLoop()
/openbsd-src/gnu/llvm/llvm/lib/Target/AMDGPU/Utils/
H A DAMDGPUMemoryUtils.cpp152 SmallVector<MemoryAccess *> WorkList{Walker->getClobberingMemoryAccess(Load)}; in isClobberedInFunction()
153 SmallSet<MemoryAccess *, 8> Visited; in isClobberedInFunction()
167 MemoryAccess *MA = WorkList.pop_back_val(); in isClobberedInFunction()
189 WorkList.push_back(cast<MemoryAccess>(&Use)); in isClobberedInFunction()
/openbsd-src/gnu/llvm/llvm/include/llvm/ExecutionEngine/Orc/
H A DSimpleRemoteEPC.h42 Expected<std::unique_ptr<MemoryAccess>>(SimpleRemoteEPC &);
103 static Expected<std::unique_ptr<MemoryAccess>>
132 std::unique_ptr<MemoryAccess> OwnedMemAccess;
H A DExecutorProcessControl.h101 class MemoryAccess {
106 virtual ~MemoryAccess();
210 MemoryAccess &getMemoryAccess() const { in getMemoryAccess()
373 MemoryAccess *MemAccess = nullptr;
429 private ExecutorProcessControl::MemoryAccess {
H A DEPCGenericMemoryAccess.h26 class EPCGenericMemoryAccess : public ExecutorProcessControl::MemoryAccess {
/openbsd-src/gnu/llvm/llvm/include/llvm/Transforms/Scalar/
H A DGVNExpression.h270 const MemoryAccess *MemoryLeader;
274 const MemoryAccess *MemoryLeader) in MemoryExpression()
297 const MemoryAccess *getMemoryLeader() const { return MemoryLeader; } in getMemoryLeader()
298 void setMemoryLeader(const MemoryAccess *ML) { MemoryLeader = ML; } in setMemoryLeader()
307 const MemoryAccess *MemoryLeader) in CallExpression()
334 const MemoryAccess *MemoryLeader) in LoadExpression()
338 const MemoryAccess *MemoryLeader) in LoadExpression()
377 const MemoryAccess *MemoryLeader) in StoreExpression()
/openbsd-src/gnu/llvm/compiler-rt/lib/tsan/go/
H A Dtsan_go.cpp170 MemoryAccess(thr, (uptr)pc, (uptr)addr, 1, kAccessRead); in __tsan_read()
176 MemoryAccess(thr, (uptr)pc, (uptr)addr, 1, kAccessRead); in __tsan_read_pc()
182 MemoryAccess(thr, (uptr)pc, (uptr)addr, 1, kAccessWrite); in __tsan_write()
188 MemoryAccess(thr, (uptr)pc, (uptr)addr, 1, kAccessWrite); in __tsan_write_pc()
/openbsd-src/gnu/llvm/llvm/lib/ExecutionEngine/Orc/
H A DExecutorProcessControl.cpp22 ExecutorProcessControl::MemoryAccess::~MemoryAccess() = default;
/openbsd-src/gnu/llvm/llvm/include/llvm/Transforms/Utils/
H A DLoopUtils.h34 class MemoryAccess; variable
210 SmallVectorImpl<Instruction *> &, SmallVectorImpl<MemoryAccess *> &,
/openbsd-src/gnu/llvm/llvm/lib/Transforms/Utils/
H A DLoopUtils.cpp1725 SmallVector<MemoryAccess *, 4> AccessesToCheck; in hasPartialIVCondition()
1742 if (MemoryAccess *MA = MSSA.getMemoryAccess(I)) { in hasPartialIVCondition()
1764 SmallVector<MemoryAccess *, 4> AccessesToCheck) in hasPartialIVCondition()
1799 SmallPtrSet<MemoryAccess *, 4> SeenAccesses; in hasPartialIVCondition()
1801 MemoryAccess *Current = AccessesToCheck.pop_back_val(); in hasPartialIVCondition()
1825 AccessesToCheck.push_back(cast<MemoryAccess>(U.getUser())); in hasPartialIVCondition()

12