[GMR] Continue my quest to remove linked datastructures from GMR, NFC.

This replaces the next-to-last std::map with a DenseMap. While DenseMap
doesn't yet make tons of sense (there are 32 bytes or so in the value
type), my next change will reduce the value type to a single pointer --
we only need a pointer and 3 bits, and that is exactly what we can have.

llvm-svn: 242956
This commit is contained in:
Chandler Carruth 2015-07-22 22:32:34 +00:00
parent ed9abe119b
commit 61ddab6d4c
1 changed files with 2 additions and 3 deletions

View File

@ -101,7 +101,7 @@ class GlobalsModRef : public ModulePass, public AliasAnalysis {
/// FunctionInfo - For each function, keep track of what globals are /// FunctionInfo - For each function, keep track of what globals are
/// modified or read. /// modified or read.
std::map<const Function *, FunctionRecord> FunctionInfo; DenseMap<const Function *, FunctionRecord> FunctionInfo;
/// Handle to clear this analysis on deletion of values. /// Handle to clear this analysis on deletion of values.
struct DeletionCallbackHandle final : CallbackVH { struct DeletionCallbackHandle final : CallbackVH {
@ -227,8 +227,7 @@ private:
/// getFunctionInfo - Return the function info for the function, or null if /// getFunctionInfo - Return the function info for the function, or null if
/// we don't have anything useful to say about it. /// we don't have anything useful to say about it.
FunctionRecord *getFunctionInfo(const Function *F) { FunctionRecord *getFunctionInfo(const Function *F) {
std::map<const Function *, FunctionRecord>::iterator I = auto I = FunctionInfo.find(F);
FunctionInfo.find(F);
if (I != FunctionInfo.end()) if (I != FunctionInfo.end())
return &I->second; return &I->second;
return nullptr; return nullptr;