diff options
| author | Chandler Carruth <chandlerc@gmail.com> | 2015-08-15 09:22:21 +0000 |
|---|---|---|
| committer | Chandler Carruth <chandlerc@gmail.com> | 2015-08-15 09:22:21 +0000 |
| commit | e8824e3026fa9542f4531ffb1d85863b78dfb1d4 (patch) | |
| tree | 276fcced7e78e9b3bd0b198f3652540bb9bc1b1a /llvm/lib/Analysis/LibCallSemantics.cpp | |
| parent | 2db38f33f375d5dc766c4f25d52c4f9865ae9e43 (diff) | |
| download | bcm5719-llvm-e8824e3026fa9542f4531ffb1d85863b78dfb1d4.tar.gz bcm5719-llvm-e8824e3026fa9542f4531ffb1d85863b78dfb1d4.zip | |
[PM/AA] Delete the LibCallAliasAnalysis and all the associated
infrastructure.
This AA was never used in tree. It's infrastructure also completely
overlaps that of TargetLibraryInfo which is used heavily by BasicAA to
achieve similar goals to those stated for this analysis.
As has come up in several discussions, the use case here is still really
important, but this code isn't helping move toward that use case. Any
progress on better supporting rich AA information for runtime library
environments would likely be better off starting from scratch or
starting from TargetLibraryInfo than from this base.
Differential Revision: http://reviews.llvm.org/D12028
llvm-svn: 245155
Diffstat (limited to 'llvm/lib/Analysis/LibCallSemantics.cpp')
| -rw-r--r-- | llvm/lib/Analysis/LibCallSemantics.cpp | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/llvm/lib/Analysis/LibCallSemantics.cpp b/llvm/lib/Analysis/LibCallSemantics.cpp index 003c81e87b6..36b92c38e89 100644 --- a/llvm/lib/Analysis/LibCallSemantics.cpp +++ b/llvm/lib/Analysis/LibCallSemantics.cpp @@ -14,54 +14,10 @@ //===----------------------------------------------------------------------===// #include "llvm/Analysis/LibCallSemantics.h" -#include "llvm/ADT/StringMap.h" #include "llvm/ADT/StringSwitch.h" #include "llvm/IR/Function.h" using namespace llvm; -/// This impl pointer in ~LibCallInfo is actually a StringMap. This -/// helper does the cast. -static StringMap<const LibCallFunctionInfo*> *getMap(void *Ptr) { - return static_cast<StringMap<const LibCallFunctionInfo*> *>(Ptr); -} - -LibCallInfo::~LibCallInfo() { - delete getMap(Impl); -} - -const LibCallLocationInfo &LibCallInfo::getLocationInfo(unsigned LocID) const { - // Get location info on the first call. - if (NumLocations == 0) - NumLocations = getLocationInfo(Locations); - - assert(LocID < NumLocations && "Invalid location ID!"); - return Locations[LocID]; -} - - -/// Return the LibCallFunctionInfo object corresponding to -/// the specified function if we have it. If not, return null. -const LibCallFunctionInfo * -LibCallInfo::getFunctionInfo(const Function *F) const { - StringMap<const LibCallFunctionInfo*> *Map = getMap(Impl); - - /// If this is the first time we are querying for this info, lazily construct - /// the StringMap to index it. - if (!Map) { - Impl = Map = new StringMap<const LibCallFunctionInfo*>(); - - const LibCallFunctionInfo *Array = getFunctionInfoArray(); - if (!Array) return nullptr; - - // We now have the array of entries. Populate the StringMap. - for (unsigned i = 0; Array[i].Name; ++i) - (*Map)[Array[i].Name] = Array+i; - } - - // Look up this function in the string map. - return Map->lookup(F->getName()); -} - /// See if the given exception handling personality function is one that we /// understand. If so, return a description of it; otherwise return Unknown. EHPersonality llvm::classifyEHPersonality(const Value *Pers) { |

