@@ -732,7 +732,7 @@ class CallsiteContextGraph {
732
732
// / of the functions tracked calls to their new versions in the CallMap.
733
733
// / Assigns new clones to clone number CloneNo.
734
734
FuncInfo cloneFunctionForCallsite (
735
- FuncInfo &Func, CallInfo &Call, std::map <CallInfo, CallInfo> &CallMap,
735
+ FuncInfo &Func, CallInfo &Call, DenseMap <CallInfo, CallInfo> &CallMap,
736
736
std::vector<CallInfo> &CallsWithMetadataInFunc, unsigned CloneNo) {
737
737
return static_cast <DerivedCCG *>(this )->cloneFunctionForCallsite (
738
738
Func, Call, CallMap, CallsWithMetadataInFunc, CloneNo);
@@ -899,7 +899,7 @@ class ModuleCallsiteContextGraph
899
899
CallsiteContextGraph<ModuleCallsiteContextGraph, Function,
900
900
Instruction *>::FuncInfo
901
901
cloneFunctionForCallsite (FuncInfo &Func, CallInfo &Call,
902
- std::map <CallInfo, CallInfo> &CallMap,
902
+ DenseMap <CallInfo, CallInfo> &CallMap,
903
903
std::vector<CallInfo> &CallsWithMetadataInFunc,
904
904
unsigned CloneNo);
905
905
std::string getLabel (const Function *Func, const Instruction *Call,
@@ -991,7 +991,7 @@ class IndexCallsiteContextGraph
991
991
CallsiteContextGraph<IndexCallsiteContextGraph, FunctionSummary,
992
992
IndexCall>::FuncInfo
993
993
cloneFunctionForCallsite (FuncInfo &Func, CallInfo &Call,
994
- std::map <CallInfo, CallInfo> &CallMap,
994
+ DenseMap <CallInfo, CallInfo> &CallMap,
995
995
std::vector<CallInfo> &CallsWithMetadataInFunc,
996
996
unsigned CloneNo);
997
997
std::string getLabel (const FunctionSummary *Func, const IndexCall &Call,
@@ -4062,7 +4062,7 @@ static void updateSubprogramLinkageName(Function *NewFunc, StringRef Name) {
4062
4062
CallsiteContextGraph<ModuleCallsiteContextGraph, Function,
4063
4063
Instruction *>::FuncInfo
4064
4064
ModuleCallsiteContextGraph::cloneFunctionForCallsite (
4065
- FuncInfo &Func, CallInfo &Call, std::map <CallInfo, CallInfo> &CallMap,
4065
+ FuncInfo &Func, CallInfo &Call, DenseMap <CallInfo, CallInfo> &CallMap,
4066
4066
std::vector<CallInfo> &CallsWithMetadataInFunc, unsigned CloneNo) {
4067
4067
// Use existing LLVM facilities for cloning and obtaining Call in clone
4068
4068
ValueToValueMapTy VMap;
@@ -4085,7 +4085,7 @@ ModuleCallsiteContextGraph::cloneFunctionForCallsite(
4085
4085
CallsiteContextGraph<IndexCallsiteContextGraph, FunctionSummary,
4086
4086
IndexCall>::FuncInfo
4087
4087
IndexCallsiteContextGraph::cloneFunctionForCallsite (
4088
- FuncInfo &Func, CallInfo &Call, std::map <CallInfo, CallInfo> &CallMap,
4088
+ FuncInfo &Func, CallInfo &Call, DenseMap <CallInfo, CallInfo> &CallMap,
4089
4089
std::vector<CallInfo> &CallsWithMetadataInFunc, unsigned CloneNo) {
4090
4090
// Check how many clones we have of Call (and therefore function).
4091
4091
// The next clone number is the current size of versions array.
@@ -4506,7 +4506,7 @@ bool CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::assignFunctions() {
4506
4506
FuncInfo FuncClone;
4507
4507
// Remappings of each call of interest (from original uncloned call to the
4508
4508
// corresponding cloned call in this function clone).
4509
- std::map <CallInfo, CallInfo> CallMap;
4509
+ DenseMap <CallInfo, CallInfo> CallMap;
4510
4510
};
4511
4511
4512
4512
// Walk all functions for which we saw calls with memprof metadata, and handle
@@ -4542,7 +4542,7 @@ bool CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::assignFunctions() {
4542
4542
FuncCloneToCurNodeCloneMap[FuncClone] = CallsiteClone;
4543
4543
4544
4544
assert (FuncCloneInfos.size () > FuncClone.cloneNo ());
4545
- std::map <CallInfo, CallInfo> &CallMap =
4545
+ DenseMap <CallInfo, CallInfo> &CallMap =
4546
4546
FuncCloneInfos[FuncClone.cloneNo ()].CallMap ;
4547
4547
CallInfo CallClone (Call);
4548
4548
if (auto It = CallMap.find (Call); It != CallMap.end ())
@@ -4594,7 +4594,8 @@ bool CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::assignFunctions() {
4594
4594
}));
4595
4595
// Initialize with empty call map, assign Clone to original function
4596
4596
// and its callers, and skip to the next clone.
4597
- FuncCloneInfos.push_back ({OrigFunc, {}});
4597
+ FuncCloneInfos.push_back (
4598
+ {OrigFunc, DenseMap<CallInfo, CallInfo>()});
4598
4599
AssignCallsiteCloneToFuncClone (
4599
4600
OrigFunc, Call, Clone,
4600
4601
AllocationCallToContextNodeMap.count (Call));
@@ -4627,7 +4628,7 @@ bool CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::assignFunctions() {
4627
4628
4628
4629
// Clone function and save it along with the CallInfo map created
4629
4630
// during cloning in the FuncCloneInfos.
4630
- std::map <CallInfo, CallInfo> NewCallMap;
4631
+ DenseMap <CallInfo, CallInfo> NewCallMap;
4631
4632
unsigned CloneNo = FuncCloneInfos.size ();
4632
4633
assert (CloneNo > 0 && " Clone 0 is the original function, which "
4633
4634
" should already exist in the map" );
@@ -4734,7 +4735,7 @@ bool CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::assignFunctions() {
4734
4735
// CallMap is set up as indexed by original Call at clone 0.
4735
4736
CallInfo OrigCall (Callee->getOrigNode ()->Call );
4736
4737
OrigCall.setCloneNo (0 );
4737
- std::map <CallInfo, CallInfo> &CallMap =
4738
+ DenseMap <CallInfo, CallInfo> &CallMap =
4738
4739
FuncCloneInfos[NewFuncClone.cloneNo ()].CallMap ;
4739
4740
assert (CallMap.count (OrigCall));
4740
4741
CallInfo NewCall (CallMap[OrigCall]);
0 commit comments