+ FunctionPtrToNameMap.clear();
+ for (const RawInstrProf::ProfileData<IntPtrT> *I = Data; I != DataEnd; ++I) {
+ const IntPtrT FPtr = swap(I->FunctionPointer);
+ if (!FPtr)
+ continue;
+ StringRef FunctionName(getName(I->NamePtr), swap(I->NameSize));
+ const char* NameEntryPtr = StringTable.insertString(FunctionName);
+ FunctionPtrToNameMap.push_back(std::pair<const IntPtrT, const char*>
+ (FPtr, NameEntryPtr));
+ }
+ std::sort(FunctionPtrToNameMap.begin(), FunctionPtrToNameMap.end(), less_first());
+ FunctionPtrToNameMap.erase(std::unique(FunctionPtrToNameMap.begin(),
+ FunctionPtrToNameMap.end()),
+ FunctionPtrToNameMap.end());