mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-19 23:29:20 +00:00
Give MachineModuleInfo an actual Module*.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100508 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
42a4ee0a35
commit
421ccd9892
@ -39,7 +39,7 @@ public:
|
||||
CodeGenOpt::Level getOptLevel() const { return OptLevel; }
|
||||
|
||||
private:
|
||||
virtual bool doInitialization(Module &) { NextFnNum = 1; return false; }
|
||||
virtual bool doInitialization(Module &M);
|
||||
virtual bool runOnFunction(Function &F);
|
||||
virtual void releaseMemory();
|
||||
virtual void getAnalysisUsage(AnalysisUsage &AU) const;
|
||||
|
@ -100,6 +100,9 @@ class MachineModuleInfo : public ImmutablePass {
|
||||
/// Context - This is the MCContext used for the entire code generator.
|
||||
MCContext Context;
|
||||
|
||||
/// TheModule - This is the LLVM Module being worked on.
|
||||
Module *TheModule;
|
||||
|
||||
/// ObjFileMMI - This is the object-file-format-specific implementation of
|
||||
/// MachineModuleInfoImpl, which lets targets accumulate whatever info they
|
||||
/// want.
|
||||
@ -176,6 +179,9 @@ public:
|
||||
const MCContext &getContext() const { return Context; }
|
||||
MCContext &getContext() { return Context; }
|
||||
|
||||
void setModule(Module *M) { TheModule = M; }
|
||||
Module *getModule() const { return TheModule; }
|
||||
|
||||
/// getInfo - Keep track of various per-function pieces of information for
|
||||
/// backends that would like to do so.
|
||||
///
|
||||
|
@ -35,6 +35,19 @@ MachineFunctionAnalysis::~MachineFunctionAnalysis() {
|
||||
assert(!MF && "MachineFunctionAnalysis left initialized!");
|
||||
}
|
||||
|
||||
void MachineFunctionAnalysis::getAnalysisUsage(AnalysisUsage &AU) const {
|
||||
AU.setPreservesAll();
|
||||
AU.addRequired<MachineModuleInfo>();
|
||||
}
|
||||
|
||||
bool MachineFunctionAnalysis::doInitialization(Module &M) {
|
||||
MachineModuleInfo *MMI = getAnalysisIfAvailable<MachineModuleInfo>();
|
||||
assert(MMI && "MMI not around yet??");
|
||||
MMI->setModule(&M);
|
||||
NextFnNum = 1; return false;
|
||||
}
|
||||
|
||||
|
||||
bool MachineFunctionAnalysis::runOnFunction(Function &F) {
|
||||
assert(!MF && "MachineFunctionAnalysis already initialized!");
|
||||
MF = new MachineFunction(&F, TM, NextFnNum++,
|
||||
@ -46,8 +59,3 @@ void MachineFunctionAnalysis::releaseMemory() {
|
||||
delete MF;
|
||||
MF = 0;
|
||||
}
|
||||
|
||||
void MachineFunctionAnalysis::getAnalysisUsage(AnalysisUsage &AU) const {
|
||||
AU.setPreservesAll();
|
||||
AU.addRequired<MachineModuleInfo>();
|
||||
}
|
||||
|
@ -262,6 +262,7 @@ MachineModuleInfo::MachineModuleInfo(const MCAsmInfo &MAI)
|
||||
// Always emit some info, by default "no personality" info.
|
||||
Personalities.push_back(NULL);
|
||||
AddrLabelSymbols = 0;
|
||||
TheModule = 0;
|
||||
}
|
||||
|
||||
MachineModuleInfo::MachineModuleInfo()
|
||||
|
Loading…
x
Reference in New Issue
Block a user