LLVM 20.0.0git
Macros | Functions
MemorySSAUpdater.cpp File Reference
#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 MemoryAccessonlySingleValue (MemoryPhi *MP)
 If all arguments of a MemoryPHI are defined by the same incoming argument, return that argument.
 
static MemoryAccessgetNewDefiningAccessForClone (MemoryAccess *MA, const ValueToValueMapTy &VMap, PhiToDefMap &MPhiMap, MemorySSA *MSSA, function_ref< bool(BasicBlock *BB)> IsInClonedRegion)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "memoryssa"

Definition at line 24 of file MemorySSAUpdater.cpp.

Function Documentation

◆ getNewDefiningAccessForClone()

static MemoryAccess * getNewDefiningAccessForClone ( MemoryAccess MA,
const ValueToValueMapTy VMap,
PhiToDefMap MPhiMap,
MemorySSA MSSA,
function_ref< bool(BasicBlock *BB)>  IsInClonedRegion 
)
static

◆ onlySingleValue()

static MemoryAccess * onlySingleValue ( MemoryPhi MP)
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().

◆ setMemoryPhiValueForBlock()

static void setMemoryPhiValueForBlock ( MemoryPhi MP,
const BasicBlock BB,
MemoryAccess NewDef 
)
static