|
LLVM
4.0.0
|
#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>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 MemoryAccess * | llvm::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< bool > | VerifyMemorySSA ("verify-memoryssa", cl::init(false), cl::Hidden, cl::desc("Verify MemorySSA in legacy printer pass.")) |
| static const char | llvm::LiveOnEntryStr [] = "liveOnEntry" |
| #define DEBUG_TYPE "memoryssa" |
Definition at line 45 of file MemorySSA.cpp.
| INITIALIZE_PASS_BEGIN | ( | MemorySSAWrapperPass | , |
| "memoryssa" | , | ||
| "Memory SSA" | , | ||
| false | , | ||
| true | |||
| ) |
| Memory true INITIALIZE_PASS_BEGIN | ( | MemorySSAPrinterLegacyPass | , |
| "print-memoryssa" | , | ||
| "Memory SSA Printer" | , | ||
| false | , | ||
| false | |||
| ) |
|
static |
| STATISTIC | ( | NumClobberCacheInserts | , |
| "Number of MemorySSA version cache inserts" | |||
| ) |
Definition at line 55 of file MemorySSA.cpp.
| Memory SSA |
Definition at line 55 of file MemorySSA.cpp.
Referenced by llvm::promoteLoopAccessesToScalars(), and RewriteUsesOfClonedInstructions().
1.8.6