//===-- PoolAllocate.cpp - Pool Allocation Pass ---------------------------===// // // This transform changes programs so that disjoint data structures are // allocated out of different pools of memory, increasing locality and shrinking // pointer size. // //===----------------------------------------------------------------------===// #include "llvm/Transforms/IPO/PoolAllocate.h" #include "llvm/Analysis/DataStructure.h" #include "llvm/Pass.h" namespace { struct PoolAllocate : public Pass { bool run(Module *M) { DataStructure &DS = getAnalysis(); return false; } // getAnalysisUsageInfo - This function works on the call graph of a module. // It is capable of updating the call graph to reflect the new state of the // module. // virtual void getAnalysisUsageInfo(Pass::AnalysisSet &Required, Pass::AnalysisSet &Destroyed, Pass::AnalysisSet &Provided) { Required.push_back(DataStructure::ID); } }; } Pass *createPoolAllocatePass() { return new PoolAllocate(); }