LLVM 20.0.0git
|
#include "llvm/Analysis/MemorySSAUpdater.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/Analysis/IteratedDominanceFrontier.h"
#include "llvm/Analysis/LoopIterator.h"
#include "llvm/Analysis/MemorySSA.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Dominators.h"
#include "llvm/Support/Debug.h"
#include <algorithm>
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "memoryssa" |
Functions | |
static void | setMemoryPhiValueForBlock (MemoryPhi *MP, const BasicBlock *BB, MemoryAccess *NewDef) |
static MemoryAccess * | onlySingleValue (MemoryPhi *MP) |
If all arguments of a MemoryPHI are defined by the same incoming argument, return that argument. | |
static MemoryAccess * | getNewDefiningAccessForClone (MemoryAccess *MA, const ValueToValueMapTy &VMap, PhiToDefMap &MPhiMap, MemorySSA *MSSA) |
#define DEBUG_TYPE "memoryssa" |
Definition at line 24 of file MemorySSAUpdater.cpp.
|
static |
Definition at line 568 of file MemorySSAUpdater.cpp.
References assert(), llvm::MemorySSA::getMemoryAccess(), getNewDefiningAccessForClone(), llvm::MemorySSA::isLiveOnEntryDef(), llvm::ValueMap< KeyT, ValueT, Config >::lookup(), and llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::lookup().
Referenced by getNewDefiningAccessForClone(), and llvm::MemorySSAUpdater::updateForClonedLoop().
|
static |
If all arguments of a MemoryPHI are defined by the same incoming argument, return that argument.
Definition at line 556 of file MemorySSAUpdater.cpp.
References llvm::User::operands().
Referenced by llvm::MemorySSAUpdater::removeMemoryAccess(), and llvm::MemorySSAUpdater::updateForClonedLoop().
|
static |
Definition at line 285 of file MemorySSAUpdater.cpp.
References assert(), llvm::MemoryPhi::blocks(), llvm::drop_begin(), llvm::MemoryPhi::getBasicBlockIndex(), and llvm::MemoryPhi::setIncomingValue().