summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/LibCallSemantics.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2015-08-15 09:22:21 +0000
committerChandler Carruth <chandlerc@gmail.com>2015-08-15 09:22:21 +0000
commite8824e3026fa9542f4531ffb1d85863b78dfb1d4 (patch)
tree276fcced7e78e9b3bd0b198f3652540bb9bc1b1a /llvm/lib/Analysis/LibCallSemantics.cpp
parent2db38f33f375d5dc766c4f25d52c4f9865ae9e43 (diff)
downloadbcm5719-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.cpp44
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) {
OpenPOWER on IntegriCloud