LLVM API Documentation


Public Member Functions | |
| Andersens () | |
| bool | runOnModule (Module &M) |
| void | releaseMemory () |
| virtual void | getAnalysisUsage (AnalysisUsage &AU) const |
| AliasResult | alias (const Value *V1, unsigned V1Size, const Value *V2, unsigned V2Size) |
| virtual ModRefResult | getModRefInfo (CallSite CS, Value *P, unsigned Size) |
| virtual ModRefResult | getModRefInfo (CallSite CS1, CallSite CS2) |
| void | getMustAliases (Value *P, std::vector< Value * > &RetVals) |
| bool | pointsToConstantMemory (const Value *P) |
| virtual void | deleteValue (Value *V) |
| virtual void | copyValue (Value *From, Value *To) |
Static Public Attributes | |
| char | ID = 0 |
Friends | |
| class | InstVisitor<Andersens> |
|
|
Definition at line 434 of file Andersens.cpp. |
|
||||||||||||||||||||
|
alias - The main low level interface to the alias analysis implementation. Returns a Result indicating whether the two pointers are aliased to each other. This is the interface that must be implemented by specific alias analysis implementations. Reimplemented from llvm::AliasAnalysis. Definition at line 627 of file Andersens.cpp. |
|
||||||||||||
|
copyValue - This method should be used whenever a preexisting value in the program is copied or cloned, introducing a new value. Note that analysis implementations should tolerate clients that use this method to introduce the same value multiple times: if the analysis already knows about a value, it should ignore the request. Reimplemented from llvm::AliasAnalysis. Definition at line 490 of file Andersens.cpp. |
|
|
deleteValue - This method should be called whenever an LLVM Value is deleted from the program, for example when an instruction is found to be redundant and is eliminated. Reimplemented from llvm::AliasAnalysis. Definition at line 485 of file Andersens.cpp. |
|
|
getAnalysisUsage - All alias analysis implementations should invoke this directly (using AliasAnalysis::getAnalysisUsage(AU)) to make sure that TargetData is required by the pass. Reimplemented from llvm::AliasAnalysis. Definition at line 470 of file Andersens.cpp. References llvm::AnalysisUsage::setPreservesAll(). |
|
||||||||||||
|
getModRefInfo - Return information about whether two call sites may refer to the same set of memory locations. This function returns NoModRef if the two calls refer to disjoint memory locations, Ref if CS1 reads memory written by CS2, Mod if CS1 writes to memory read or written by CS2, or ModRef if CS1 might read or write memory accessed by CS2. Reimplemented from llvm::AliasAnalysis. Definition at line 669 of file Andersens.cpp. |
|
||||||||||||||||
|
getModRefInfo (for call sites) - Return whether information about whether a particular call site modifies or reads the memory specified by the pointer. Reimplemented from llvm::AliasAnalysis. Definition at line 641 of file Andersens.cpp. References llvm::CallSite::getCalledFunction(), and llvm::Function::isDeclaration(). |
|
||||||||||||
|
getMustAlias - We can provide must alias information if we know that a pointer can only point to a specific function or the null pointer. Unfortunately we cannot determine must-alias information for global variables or any other memory memory objects because we do not track whether a pointer points to the beginning of an object or a field of it. Reimplemented from llvm::AliasAnalysis. Definition at line 678 of file Andersens.cpp. References llvm::Value::getType(). |
|
|
pointsToConstantMemory - If we can determine that this pointer only points to constant memory, return true. In practice, this means that if the pointer can only point to constant globals, functions, or the null pointer, return true. Reimplemented from llvm::AliasAnalysis. Definition at line 704 of file Andersens.cpp. References llvm::SparseBitVector< ElementSize >::end(). |
|
|
releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memory when it is no longer needed. The default behavior of passes is to hold onto memory for the entire duration of their lifetime (which is the entire compile time). For pipelined passes, this is not a big deal because that memory gets recycled every time the pass is invoked on another program unit. For IP passes, it is more important to free memory when it is unused. Optionally implement this function to release pass memory when it is no longer used. Reimplemented from llvm::Pass. Definition at line 458 of file Andersens.cpp. |
|
|
runOnModule - Virtual method overriden by subclasses to process the module being operated on. Implements llvm::ModulePass. Definition at line 436 of file Andersens.cpp. References DEBUG. |
|
|
Definition at line 587 of file Andersens.cpp. |
|
|
Reimplemented from llvm::AliasAnalysis. Definition at line 613 of file Andersens.cpp. |