LLVM  4.0.0
Classes | Namespaces | Macros | Enumerations | Functions | Variables
MemorySSA.cpp File Reference
#include "llvm/Transforms/Utils/MemorySSA.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/GraphTraits.h"
#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallBitVector.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/CFG.h"
#include "llvm/Analysis/GlobalsModRef.h"
#include "llvm/Analysis/IteratedDominanceFrontier.h"
#include "llvm/Analysis/MemoryLocation.h"
#include "llvm/Analysis/PHITransAddr.h"
#include "llvm/IR/AssemblyAnnotationWriter.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/GlobalVariable.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/FormattedStream.h"
#include "llvm/Transforms/Scalar.h"
#include <algorithm>
Include dependency graph for MemorySSA.cpp:

Go to the source code of this file.

Classes

class  llvm::MemorySSAAnnotatedWriter
 An assembly annotator class to print Memory SSA information in comments. More...
 
struct  llvm::DenseMapInfo< MemoryLocOrCall >
 
class  llvm::MemorySSA::CachingWalker
 A MemorySSAWalker that does AA walks and caching of lookups to disambiguate accesses. More...
 
class  llvm::MemorySSA::OptimizeUses
 This class is a batch walker of all MemoryUse's in the program, and points their defining access at the thing that actually clobbers them. More...
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Macros

#define DEBUG_TYPE   "memoryssa"
 

Enumerations

enum  llvm::Reorderability { llvm::Reorderability::Always, llvm::Reorderability::IfNoAlias, llvm::Reorderability::Never }
 

Functions

 STATISTIC (NumClobberCacheLookups,"Number of Memory SSA version cache lookups")
 
 STATISTIC (NumClobberCacheHits,"Number of Memory SSA version cache hits")
 
 STATISTIC (NumClobberCacheInserts,"Number of MemorySSA version cache inserts")
 
 INITIALIZE_PASS_BEGIN (MemorySSAWrapperPass,"memoryssa","Memory SSA", false, true) INITIALIZE_PASS_END(MemorySSAWrapperPass
 
Memory true INITIALIZE_PASS_BEGIN (MemorySSAPrinterLegacyPass,"print-memoryssa","Memory SSA Printer", false, false) INITIALIZE_PASS_END(MemorySSAPrinterLegacyPass
 
Memory true print Memory SSA
static false cl::opt< unsigned
MaxCheckLimit ("memssa-check-limit", cl::Hidden, cl::init(100), cl::desc("The maximum number of stores/phis MemorySSA""will consider trying to walk past (default = 100)"))
 
static Reorderability llvm::getLoadReorderability (const LoadInst *Use, const LoadInst *MayClobber)
 This does one-way checks to see if Use could theoretically be hoisted above MayClobber. More...
 
static bool llvm::instructionClobbersQuery (MemoryDef *MD, const MemoryLocation &UseLoc, const Instruction *UseInst, AliasAnalysis &AA)
 
static bool llvm::instructionClobbersQuery (MemoryDef *MD, const MemoryUseOrDef *MU, const MemoryLocOrCall &UseMLOC, AliasAnalysis &AA)
 
bool llvm::defClobbersUseOrDef (MemoryDef *MD, const MemoryUseOrDef *MU, AliasAnalysis &AA)
 
static MemoryAccessllvm::onlySingleValue (MemoryPhi *MP)
 If all arguments of a MemoryPHI are defined by the same incoming argument, return that argument. More...
 

Variables

 memoryssa
 
Memory SSA
 
Memory false
 
Memory true print Memory SSA Printer
 
static cl::opt< boolVerifyMemorySSA ("verify-memoryssa", cl::init(false), cl::Hidden, cl::desc("Verify MemorySSA in legacy printer pass."))
 
static const char llvm::LiveOnEntryStr [] = "liveOnEntry"
 

Macro Definition Documentation

#define DEBUG_TYPE   "memoryssa"

Definition at line 45 of file MemorySSA.cpp.

Function Documentation

INITIALIZE_PASS_BEGIN ( MemorySSAWrapperPass  ,
"memoryssa"  ,
"Memory SSA ,
false  ,
true   
)
Memory true INITIALIZE_PASS_BEGIN ( MemorySSAPrinterLegacyPass  ,
"print-memoryssa ,
"Memory SSA Printer ,
false  ,
false   
)
Memory true print Memory SSA static false cl::opt<unsigned> MaxCheckLimit ( "memssa-check-limit"  ,
cl::Hidden  ,
cl::  init100,
cl::  desc"The maximum number of stores/phis MemorySSA""will consider trying to walk past (default = 100)" 
)
static
STATISTIC ( NumClobberCacheLookups  ,
"Number of Memory SSA version cache lookups"   
)
STATISTIC ( NumClobberCacheHits  ,
"Number of Memory SSA version cache hits"   
)
STATISTIC ( NumClobberCacheInserts  ,
"Number of MemorySSA version cache inserts"   
)

Variable Documentation

Memory true print Memory SSA false

Definition at line 55 of file MemorySSA.cpp.

Memory true print memoryssa

Definition at line 55 of file MemorySSA.cpp.

Memory true print Memory SSA Printer

Definition at line 61 of file MemorySSA.cpp.

Memory SSA
cl::opt<bool> VerifyMemorySSA("verify-memoryssa", cl::init(false), cl::Hidden, cl::desc("Verify MemorySSA in legacy printer pass."))
static