@@ -44,7 +44,7 @@ struct BBClusterInfo {
4444
4545struct BBPosition {
4646 UniqueBBID BBID;
47- unsigned BBOffset ;
47+ unsigned CallsiteIndex ;
4848};
4949
5050struct PrefetchHint {
@@ -62,7 +62,7 @@ struct FunctionPathAndClusterInfo {
6262 // determines the `UniqueBBID::CloneID` of the cloned blocks in that path.
6363 SmallVector<SmallVector<unsigned >> ClonePaths;
6464 SmallVector<PrefetchHint> PrefetchHints;
65- DenseSet <BBPosition> PrefetchTargets;
65+ SmallVector <BBPosition> PrefetchTargets;
6666 // Node counts for each basic block.
6767 DenseMap<UniqueBBID, uint64_t > NodeCounts;
6868 // Edge counts for each edge.
@@ -73,27 +73,6 @@ struct FunctionPathAndClusterInfo {
7373 DenseMap<unsigned , uint64_t > BBHashes;
7474};
7575
76- // Provides DenseMapInfo BBPosition.
77- template <> struct DenseMapInfo <BBPosition> {
78- static inline BBPosition getEmptyKey () {
79- return {DenseMapInfo<UniqueBBID>::getEmptyKey (),
80- DenseMapInfo<unsigned >::getEmptyKey ()};
81- }
82- static inline BBPosition getTombstoneKey () {
83- return BBPosition{DenseMapInfo<UniqueBBID>::getTombstoneKey (),
84- DenseMapInfo<unsigned >::getTombstoneKey ()};
85- }
86- static unsigned getHashValue (const BBPosition &Val) {
87- std::pair<unsigned , unsigned > PairVal = std::make_pair (
88- DenseMapInfo<UniqueBBID>::getHashValue (Val.BBID ), Val.BBOffset );
89- return DenseMapInfo<std::pair<unsigned , unsigned >>::getHashValue (PairVal);
90- }
91- static bool isEqual (const BBPosition &LHS, const BBPosition &RHS) {
92- return DenseMapInfo<UniqueBBID>::isEqual (LHS.BBID , RHS.BBID ) &&
93- DenseMapInfo<unsigned >::isEqual (LHS.BBOffset , RHS.BBOffset );
94- }
95- };
96-
9776class BasicBlockSectionsProfileReader {
9877public:
9978 friend class BasicBlockSectionsProfileReaderWrapperPass ;
@@ -123,7 +102,7 @@ class BasicBlockSectionsProfileReader {
123102 SmallVector<PrefetchHint>
124103 getPrefetchHintsForFunction (StringRef FuncName) const ;
125104
126- DenseSet<BBPosition > getPrefetchTargetsForFunction (StringRef FuncName) const ;
105+ DenseMap<UniqueBBID, SmallVector< unsigned > > getPrefetchTargetsForFunction (StringRef FuncName) const ;
127106
128107private:
129108 StringRef getAliasName (StringRef FuncName) const {
@@ -236,7 +215,7 @@ class BasicBlockSectionsProfileReaderWrapperPass : public ImmutablePass {
236215 SmallVector<PrefetchHint>
237216 getPrefetchHintsForFunction (StringRef FuncName) const ;
238217
239- DenseSet<BBPosition > getPrefetchTargetsForFunction (StringRef FuncName) const ;
218+ DenseMap<UniqueBBID, SmallVector< unsigned > > getPrefetchTargetsForFunction (StringRef FuncName) const ;
240219
241220 // Initializes the FunctionNameToDIFilename map for the current module and
242221 // then reads the profile for the matching functions.
0 commit comments