1919#include " llvm/ADT/SmallVector.h"
2020#include " llvm/ADT/StringMap.h"
2121#include " llvm/ADT/StringRef.h"
22- #include " llvm/CodeGen/MachineBasicBlock.h"
2322#include " llvm/IR/Module.h"
2423#include " llvm/IR/PassManager.h"
2524#include " llvm/InitializePasses.h"
2625#include " llvm/Pass.h"
2726#include " llvm/Support/Error.h"
2827#include " llvm/Support/LineIterator.h"
2928#include " llvm/Support/MemoryBuffer.h"
29+ #include " llvm/Support/UniqueBBID.h"
3030#include " llvm/Target/TargetMachine.h"
3131
3232namespace llvm {
3333
3434// This struct represents the cluster information for a machine basic block,
35- // which is specifed by a unique ID (`MachineBasicBlock::BBID`) .
35+ // which is specifed by a unique basic block ID .
3636struct BBClusterInfo {
3737 // Basic block ID.
3838 UniqueBBID BBID;
@@ -52,27 +52,6 @@ struct FunctionPathAndClusterInfo {
5252 SmallVector<SmallVector<unsigned >> ClonePaths;
5353};
5454
55- // Provides DenseMapInfo for UniqueBBID.
56- template <> struct DenseMapInfo <UniqueBBID> {
57- static inline UniqueBBID getEmptyKey () {
58- unsigned EmptyKey = DenseMapInfo<unsigned >::getEmptyKey ();
59- return UniqueBBID{EmptyKey, EmptyKey};
60- }
61- static inline UniqueBBID getTombstoneKey () {
62- unsigned TombstoneKey = DenseMapInfo<unsigned >::getTombstoneKey ();
63- return UniqueBBID{TombstoneKey, TombstoneKey};
64- }
65- static unsigned getHashValue (const UniqueBBID &Val) {
66- std::pair<unsigned , unsigned > PairVal =
67- std::make_pair (Val.BaseID , Val.CloneID );
68- return DenseMapInfo<std::pair<unsigned , unsigned >>::getHashValue (PairVal);
69- }
70- static bool isEqual (const UniqueBBID &LHS, const UniqueBBID &RHS) {
71- return DenseMapInfo<unsigned >::isEqual (LHS.BaseID , RHS.BaseID ) &&
72- DenseMapInfo<unsigned >::isEqual (LHS.CloneID , RHS.CloneID );
73- }
74- };
75-
7655class BasicBlockSectionsProfileReader {
7756public:
7857 friend class BasicBlockSectionsProfileReaderWrapperPass ;
0 commit comments