Home
last modified time | relevance | path

Searched refs:MemoryDef (Results 1 – 18 of 18) sorted by relevance

/openbsd-src/gnu/llvm/llvm/docs/
H A DMemorySSA.rst46 - ``MemoryDef``
50 ``MemoryDef``\ s are operations which may either modify memory, or which
51 introduce some kind of ordering constraints. Examples of ``MemoryDef``\ s
53 ordering, volatile operations, memory fences, etc. A ``MemoryDef``
55 ``MemoryDef/MemoryPhi`` which is the version of memory that the new
62 b = MemoryDef(a)
63 c = MemoryDef(b)
64 d = MemoryDef(c)
69 initially every ``MemoryDef`` clobbers every other ``MemoryDef``.
72 point we have two (or more) ``MemoryDef``\ s that could flow into a
[all …]
/openbsd-src/gnu/llvm/llvm/include/llvm/Analysis/
H A DMemorySSA.h209 friend class MemoryDef;
372 class MemoryDef final : public MemoryUseOrDef {
378 MemoryDef(LLVMContext &C, MemoryAccess *DMA, Instruction *MI, BasicBlock *BB,
422 struct OperandTraits<MemoryDef> : public FixedNumOperandTraits<MemoryDef, 2> {};
423 DEFINE_TRANSPARENT_OPERAND_ACCESSORS(MemoryDef, MemoryAccess)
430 return OperandTraits<MemoryDef>::op_begin(cast<MemoryDef>(MUD));
436 return OperandTraits<MemoryDef>::op_end(cast<MemoryDef>(MUD));
442 return OperandTraits<MemoryDef>::operands(cast<MemoryDef>(MUD));
662 assert((isa<MemoryDef>(this) || isa<MemoryPhi>(this)) &&
664 if (const auto *MD = dyn_cast<MemoryDef>(this))
[all …]
H A DMemorySSAUpdater.h85 void insertDef(MemoryDef *Def, bool RenameUses = false);
/openbsd-src/gnu/llvm/llvm/lib/Transforms/Scalar/
H A DMemCpyOptimizer.cpp416 MemoryDef *LastMemDef = nullptr; in tryMergingIntoMemset()
422 if (auto *CurrentDef = dyn_cast<MemoryDef>(CurrentAcc)) in tryMergingIntoMemset()
531 cast<MemoryDef>(MemInsertPoint->getMemoryInst() == &*BI in tryMergingIntoMemset()
745 cast<MemoryDef>(MSSAU->getMemorySSA()->getMemoryAccess(SI)); in processStoreOfLoad()
747 MSSAU->insertDef(cast<MemoryDef>(NewAccess), /*RenameUses=*/true); in processStoreOfLoad()
848 auto *StoreDef = cast<MemoryDef>(MSSA->getMemoryAccess(SI)); in processStore()
851 MSSAU->insertDef(cast<MemoryDef>(NewAccess), /*RenameUses=*/false); in processStore()
1231 assert(isa<MemoryDef>(MSSAU->getMemorySSA()->getMemoryAccess(M))); in processMemCpyMemCpyDependence()
1232 auto *LastDef = cast<MemoryDef>(MSSAU->getMemorySSA()->getMemoryAccess(M)); in processMemCpyMemCpyDependence()
1234 MSSAU->insertDef(cast<MemoryDef>(NewAccess), /*RenameUses=*/true); in processMemCpyMemCpyDependence()
[all …]
H A DDeadStoreElimination.cpp756 bool canSkipDef(MemoryDef *D, bool DefVisibleToCaller) { in canSkipDef()
810 SmallVector<MemoryDef *, 64> MemDefs;
859 auto *MD = dyn_cast_or_null<MemoryDef>(MA); in DSEState()
1130 bool isWriteAtEndOfFunction(MemoryDef *Def) { in isWriteAtEndOfFunction()
1175 if (MemoryDef *UseDef = dyn_cast<MemoryDef>(UseAccess)) in isWriteAtEndOfFunction()
1300 getDomMemoryDef(MemoryDef *KillingDef, MemoryAccess *StartAccess, in getDomMemoryDef()
1324 for (;; Current = cast<MemoryDef>(Current)->getDefiningAccess()) { in getDomMemoryDef()
1362 MemoryDef *CurrentDef = cast<MemoryDef>(Current); in getDomMemoryDef()
1474 Instruction *MaybeDeadI = cast<MemoryDef>(MaybeDeadAccess)->getMemoryInst(); in getDomMemoryDef()
1575 if (MemoryDef *UseDef = dyn_cast<MemoryDef>(UseAccess)) { in getDomMemoryDef()
[all …]
H A DGVNHoist.cpp308 bool hasMemoryUse(const Instruction *NewPt, MemoryDef *Def,
321 bool hasEHOrLoadsOnPath(const Instruction *NewPt, MemoryDef *Def,
634 bool GVNHoist::hasMemoryUse(const Instruction *NewPt, MemoryDef *Def, in hasMemoryUse()
687 bool GVNHoist::hasEHOrLoadsOnPath(const Instruction *NewPt, MemoryDef *Def, in hasEHOrLoadsOnPath()
780 if (hasEHOrLoadsOnPath(NewPt, cast<MemoryDef>(U), NBBsOnAllPaths)) in safeToHoistLdSt()
H A DLoopSink.cpp232 if (auto *MemDef = dyn_cast<MemoryDef>(NewMemAcc)) in sinkInstruction()
H A DNewGVN.cpp1532 if (auto *MD = dyn_cast<MemoryDef>(DefiningAccess)) { in performSymbolicLoadEvaluation()
2279 auto *InstMA = dyn_cast_or_null<MemoryDef>(getMemoryAccess(I)); in moveValueToNewCongruenceClass()
2894 auto *MD = dyn_cast<MemoryDef>(&Def); in initializeCongruenceClasses()
3212 if (auto *MemDef = dyn_cast<MemoryDef>(Pair.first)) in verifyMemoryCongruency()
3249 isa<MemoryDef>(U); in verifyMemoryCongruency()
3258 const MemoryDef *MD = cast<MemoryDef>(U); in verifyMemoryCongruency()
H A DLICM.cpp1285 } else if (const auto *MD = dyn_cast<MemoryDef>(&MA)) { in canSinkOrHoistInst()
1446 if (auto *MemDef = dyn_cast<MemoryDef>(NewMemAcc)) in cloneInstructionInExitBlock()
1873 MSSAU.insertDef(cast<MemoryDef>(NewMemAcc), true); in insertStoresInLoopExitBlocks()
2380 if (const auto *MD = dyn_cast<MemoryDef>(&MA)) in pointerInvalidatedByBlock()
H A DGVN.cpp1336 isa<MemoryDef>(LoadAcc) ? LoadAcc : LoadAcc->getDefiningAccess(); in eliminatePartiallyRedundantLoad()
1340 if (auto *NewDef = dyn_cast<MemoryDef>(NewAccess)) in eliminatePartiallyRedundantLoad()
1907 MSSAU->insertDef(cast<MemoryDef>(NewDef), /*RenameUses=*/false); in processAssumeIntrinsic()
H A DSimpleLoopUnswitch.cpp278 DefiningAccess = cast<MemoryDef>(DefiningAccess)->getDefiningAccess(); in buildPartialInvariantUnswitchConditionalBranch()
2667 MemoryDef *MD = cast<MemoryDef>(MSSAU->getMemorySSA()->getMemoryAccess(GI)); in turnGuardIntoBranch()
H A DLoopIdiomRecognize.cpp1212 MSSAU->insertDef(cast<MemoryDef>(NewMemAcc), true); in processLoopStridedStore()
1511 MSSAU->insertDef(cast<MemoryDef>(NewMemAcc), true); in processLoopStoreOfLoopLoad()
/openbsd-src/gnu/llvm/llvm/lib/Target/AMDGPU/Utils/
H A DAMDGPUMemoryUtils.h22 class MemoryDef; variable
38 bool isReallyAClobber(const Value *Ptr, MemoryDef *Def, AAResults *AA);
H A DAMDGPUMemoryUtils.cpp118 bool isReallyAClobber(const Value *Ptr, MemoryDef *Def, AAResults *AA) { in isReallyAClobber()
174 if (MemoryDef *Def = dyn_cast<MemoryDef>(MA)) { in isClobberedInFunction()
/openbsd-src/gnu/llvm/llvm/lib/Analysis/
H A DMemorySSA.cpp287 instructionClobbersQuery(const MemoryDef *MD, const MemoryLocation &UseLoc, in instructionClobbersQuery()
331 static bool instructionClobbersQuery(MemoryDef *MD, const MemoryUseOrDef *MU, in instructionClobbersQuery()
344 bool MemorySSAUtil::defClobbersUseOrDef(MemoryDef *MD, const MemoryUseOrDef *MU, in defClobbersUseOrDef()
427 if (const auto *MD = dyn_cast<MemoryDef>(MA)) { in checkClobberSanity()
445 if (const auto *MD = dyn_cast<MemoryDef>(MA)) { in checkClobberSanity()
577 if (auto *MD = dyn_cast<MemoryDef>(Current)) { in walkToPhiOrClobber()
660 assert(isa<MemoryDef>(Query->OriginalAccess)); in getBlockingAccess()
1135 if (isa<MemoryDef>(&L)) in renameBlock()
1455 MemoryDef *MD = cast<MemoryDef>(VersionStack[UpperBound]); in optimizeUsesInBlock()
1513 LiveOnEntryDef.reset(new MemoryDef(F.getContext(), nullptr, nullptr, in buildMemorySSA()
[all …]
H A DMemorySSAUpdater.cpp271 if (auto *MD = dyn_cast<MemoryDef>(FirstDef)) in insertUse()
307 void MemorySSAUpdater::insertDef(MemoryDef *MD, bool RenameUses) { in insertDef()
441 if (auto *MD = dyn_cast<MemoryDef>(FirstDef)) in insertDef()
479 cast<MemoryDef>(DefIter)->setDefiningAccess(NewDef); in fixupDefs()
510 cast<MemoryDef>(FirstDef)->setDefiningAccess(getPreviousDef(FirstDef)); in fixupDefs()
574 if (MemoryDef *DefMUD = dyn_cast<MemoryDef>(InsnDefining)) { in getNewDefiningAccessForClone()
1180 if (auto *MD = dyn_cast<MemoryDef>(What)) in moveTo()
/openbsd-src/gnu/llvm/llvm/include/llvm/IR/
H A DValue.def120 HANDLE_MEMORY_VALUE(MemoryDef)
/openbsd-src/gnu/llvm/llvm/lib/Transforms/Utils/
H A DLoopUtils.cpp1816 if (auto *CurrentDef = dyn_cast<MemoryDef>(Current)) { in hasPartialIVCondition()