mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-20 11:29:24 +00:00
34 lines
1.1 KiB
C++
34 lines
1.1 KiB
C++
|
//===-- 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<DataStructure>();
|
||
|
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(); }
|