return new MergeFunctions();
}
-static unsigned hash(const Function *F) {
- return F->size() ^ reinterpret_cast<unsigned>(F->getType());
+static unsigned long hash(const Function *F) {
+ return F->size() ^ reinterpret_cast<unsigned long>(F->getType());
//return F->size() ^ F->arg_size() ^ F->getReturnType();
}
bool MergeFunctions::runOnModule(Module &M) {
bool Changed = false;
- std::map<unsigned, std::vector<Function *> > FnMap;
+ std::map<unsigned long, std::vector<Function *> > FnMap;
for (Module::iterator F = M.begin(), E = M.end(); F != E; ++F) {
if (F->isDeclaration() || F->isIntrinsic())
bool LocalChanged;
do {
LocalChanged = false;
- for (std::map<unsigned, std::vector<Function *> >::iterator I = FnMap.begin(),
- E = FnMap.end(); I != E; ++I) {
+ for (std::map<unsigned long, std::vector<Function *> >::iterator
+ I = FnMap.begin(), E = FnMap.end(); I != E; ++I) {
DOUT << "size: " << FnMap.size() << "\n";
std::vector<Function *> &FnVec = I->second;
DOUT << "hash (" << I->first << "): " << FnVec.size() << "\n";