@@ -732,7 +732,7 @@ class CallsiteContextGraph {
732732 // / of the functions tracked calls to their new versions in the CallMap.
733733 // / Assigns new clones to clone number CloneNo.
734734 FuncInfo cloneFunctionForCallsite (
735- FuncInfo &Func, CallInfo &Call, std::map <CallInfo, CallInfo> &CallMap,
735+ FuncInfo &Func, CallInfo &Call, DenseMap <CallInfo, CallInfo> &CallMap,
736736 std::vector<CallInfo> &CallsWithMetadataInFunc, unsigned CloneNo) {
737737 return static_cast <DerivedCCG *>(this )->cloneFunctionForCallsite (
738738 Func, Call, CallMap, CallsWithMetadataInFunc, CloneNo);
@@ -899,7 +899,7 @@ class ModuleCallsiteContextGraph
899899 CallsiteContextGraph<ModuleCallsiteContextGraph, Function,
900900 Instruction *>::FuncInfo
901901 cloneFunctionForCallsite (FuncInfo &Func, CallInfo &Call,
902- std::map <CallInfo, CallInfo> &CallMap,
902+ DenseMap <CallInfo, CallInfo> &CallMap,
903903 std::vector<CallInfo> &CallsWithMetadataInFunc,
904904 unsigned CloneNo);
905905 std::string getLabel (const Function *Func, const Instruction *Call,
@@ -991,7 +991,7 @@ class IndexCallsiteContextGraph
991991 CallsiteContextGraph<IndexCallsiteContextGraph, FunctionSummary,
992992 IndexCall>::FuncInfo
993993 cloneFunctionForCallsite (FuncInfo &Func, CallInfo &Call,
994- std::map <CallInfo, CallInfo> &CallMap,
994+ DenseMap <CallInfo, CallInfo> &CallMap,
995995 std::vector<CallInfo> &CallsWithMetadataInFunc,
996996 unsigned CloneNo);
997997 std::string getLabel (const FunctionSummary *Func, const IndexCall &Call,
@@ -4062,7 +4062,7 @@ static void updateSubprogramLinkageName(Function *NewFunc, StringRef Name) {
40624062CallsiteContextGraph<ModuleCallsiteContextGraph, Function,
40634063 Instruction *>::FuncInfo
40644064ModuleCallsiteContextGraph::cloneFunctionForCallsite (
4065- FuncInfo &Func, CallInfo &Call, std::map <CallInfo, CallInfo> &CallMap,
4065+ FuncInfo &Func, CallInfo &Call, DenseMap <CallInfo, CallInfo> &CallMap,
40664066 std::vector<CallInfo> &CallsWithMetadataInFunc, unsigned CloneNo) {
40674067 // Use existing LLVM facilities for cloning and obtaining Call in clone
40684068 ValueToValueMapTy VMap;
@@ -4085,7 +4085,7 @@ ModuleCallsiteContextGraph::cloneFunctionForCallsite(
40854085CallsiteContextGraph<IndexCallsiteContextGraph, FunctionSummary,
40864086 IndexCall>::FuncInfo
40874087IndexCallsiteContextGraph::cloneFunctionForCallsite (
4088- FuncInfo &Func, CallInfo &Call, std::map <CallInfo, CallInfo> &CallMap,
4088+ FuncInfo &Func, CallInfo &Call, DenseMap <CallInfo, CallInfo> &CallMap,
40894089 std::vector<CallInfo> &CallsWithMetadataInFunc, unsigned CloneNo) {
40904090 // Check how many clones we have of Call (and therefore function).
40914091 // The next clone number is the current size of versions array.
@@ -4506,7 +4506,7 @@ bool CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::assignFunctions() {
45064506 FuncInfo FuncClone;
45074507 // Remappings of each call of interest (from original uncloned call to the
45084508 // corresponding cloned call in this function clone).
4509- std::map <CallInfo, CallInfo> CallMap;
4509+ DenseMap <CallInfo, CallInfo> CallMap;
45104510 };
45114511
45124512 // Walk all functions for which we saw calls with memprof metadata, and handle
@@ -4542,7 +4542,7 @@ bool CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::assignFunctions() {
45424542 FuncCloneToCurNodeCloneMap[FuncClone] = CallsiteClone;
45434543
45444544 assert (FuncCloneInfos.size () > FuncClone.cloneNo ());
4545- std::map <CallInfo, CallInfo> &CallMap =
4545+ DenseMap <CallInfo, CallInfo> &CallMap =
45464546 FuncCloneInfos[FuncClone.cloneNo ()].CallMap ;
45474547 CallInfo CallClone (Call);
45484548 if (auto It = CallMap.find (Call); It != CallMap.end ())
@@ -4594,7 +4594,8 @@ bool CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::assignFunctions() {
45944594 }));
45954595 // Initialize with empty call map, assign Clone to original function
45964596 // and its callers, and skip to the next clone.
4597- FuncCloneInfos.push_back ({OrigFunc, {}});
4597+ FuncCloneInfos.push_back (
4598+ {OrigFunc, DenseMap<CallInfo, CallInfo>()});
45984599 AssignCallsiteCloneToFuncClone (
45994600 OrigFunc, Call, Clone,
46004601 AllocationCallToContextNodeMap.count (Call));
@@ -4627,7 +4628,7 @@ bool CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::assignFunctions() {
46274628
46284629 // Clone function and save it along with the CallInfo map created
46294630 // during cloning in the FuncCloneInfos.
4630- std::map <CallInfo, CallInfo> NewCallMap;
4631+ DenseMap <CallInfo, CallInfo> NewCallMap;
46314632 unsigned CloneNo = FuncCloneInfos.size ();
46324633 assert (CloneNo > 0 && " Clone 0 is the original function, which "
46334634 " should already exist in the map" );
@@ -4734,7 +4735,7 @@ bool CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::assignFunctions() {
47344735 // CallMap is set up as indexed by original Call at clone 0.
47354736 CallInfo OrigCall (Callee->getOrigNode ()->Call );
47364737 OrigCall.setCloneNo (0 );
4737- std::map <CallInfo, CallInfo> &CallMap =
4738+ DenseMap <CallInfo, CallInfo> &CallMap =
47384739 FuncCloneInfos[NewFuncClone.cloneNo ()].CallMap ;
47394740 assert (CallMap.count (OrigCall));
47404741 CallInfo NewCall (CallMap[OrigCall]);
0 commit comments