// allocated out of different pools of memory, increasing locality and shrinking
// pointer size.
//
-// This pass requires a DCE & instcombine pass to be run after it for best
-// results.
-//
//===----------------------------------------------------------------------===//
+#if 0
#include "llvm/Transforms/IPO.h"
-#include "llvm/Transforms/Utils/CloneFunction.h"
-#include "llvm/Analysis/DataStructureGraph.h"
+#include "llvm/Transforms/Utils/Cloning.h"
+#include "llvm/Analysis/DataStructure.h"
#include "llvm/Module.h"
#include "llvm/iMemory.h"
#include "llvm/iTerminators.h"
using std::string;
using std::set;
-#if 0
-
// DEBUG_CREATE_POOLS - Enable this to turn on debug output for the pool
// creation phase in the top level function of a transformed data structure.
//
// to be able to see what is pool allocatable.
//
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
- AU.addRequired(DataStructure::ID);
+ AU.addRequired<DataStructure>();
}
public:
};
- RegisterPass<PoolAllocate> X("poolalloc",
- "Pool allocate disjoint datastructures");
+ RegisterOpt<PoolAllocate> X("poolalloc",
+ "Pool allocate disjoint datastructures");
}
// isNotPoolableAlloc - This is a predicate that returns true if the specified
"Pool type should not be abstract anymore!");
// Add an allocation and a free for each pool...
- AllocaInst *PoolAlloc
- = new AllocaInst(PointerType::get(PI.PoolType), 0,
- CurModule->getTypeName(PI.PoolType));
+ AllocaInst *PoolAlloc = new AllocaInst(PI.PoolType, 0,
+ CurModule->getTypeName(PI.PoolType));
PI.Handle = PoolAlloc;
EntryNodeInsts.push_back(PoolAlloc);
AllocationInst *AI = Allocs[i]->getAllocation();
DS = 0;
return false;
}
-#endif
// createPoolAllocatePass - Global function to access the functionality of this
// pass...
//
Pass *createPoolAllocatePass() {
assert(0 && "Pool allocator disabled!");
+ return 0;
//return new PoolAllocate();
}
+#endif