| /openbsd-src/gnu/llvm/llvm/docs/ |
| H A D | MemorySSA.rst | 46 - ``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 D | MemorySSA.h | 209 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 D | MemorySSAUpdater.h | 85 void insertDef(MemoryDef *Def, bool RenameUses = false);
|
| /openbsd-src/gnu/llvm/llvm/lib/Transforms/Scalar/ |
| H A D | MemCpyOptimizer.cpp | 416 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 D | DeadStoreElimination.cpp | 756 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 D | GVNHoist.cpp | 308 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 D | LoopSink.cpp | 232 if (auto *MemDef = dyn_cast<MemoryDef>(NewMemAcc)) in sinkInstruction()
|
| H A D | NewGVN.cpp | 1532 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 D | LICM.cpp | 1285 } 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 D | GVN.cpp | 1336 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 D | SimpleLoopUnswitch.cpp | 278 DefiningAccess = cast<MemoryDef>(DefiningAccess)->getDefiningAccess(); in buildPartialInvariantUnswitchConditionalBranch() 2667 MemoryDef *MD = cast<MemoryDef>(MSSAU->getMemorySSA()->getMemoryAccess(GI)); in turnGuardIntoBranch()
|
| H A D | LoopIdiomRecognize.cpp | 1212 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 D | AMDGPUMemoryUtils.h | 22 class MemoryDef; variable 38 bool isReallyAClobber(const Value *Ptr, MemoryDef *Def, AAResults *AA);
|
| H A D | AMDGPUMemoryUtils.cpp | 118 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 D | MemorySSA.cpp | 287 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 D | MemorySSAUpdater.cpp | 271 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 D | Value.def | 120 HANDLE_MEMORY_VALUE(MemoryDef)
|
| /openbsd-src/gnu/llvm/llvm/lib/Transforms/Utils/ |
| H A D | LoopUtils.cpp | 1816 if (auto *CurrentDef = dyn_cast<MemoryDef>(Current)) { in hasPartialIVCondition()
|