mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-12 13:38:21 +00:00
- Added calls to doInitialization/doFinalization to immutable passes
- fixed ordering of calls to doFinalization to be the reverse of the pass run order due to potential dependencies - fixed machine module info to operate in the doInitialization/doFinalization model, also fixes some FIXMEs reviewed by Evan Cheng <evan.cheng@apple.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169391 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -253,15 +253,8 @@ void MMIAddrLabelMapCallbackPtr::allUsesReplacedWith(Value *V2) {
|
||||
MachineModuleInfo::MachineModuleInfo(const MCAsmInfo &MAI,
|
||||
const MCRegisterInfo &MRI,
|
||||
const MCObjectFileInfo *MOFI)
|
||||
: ImmutablePass(ID), Context(MAI, MRI, MOFI),
|
||||
ObjFileMMI(0), CompactUnwindEncoding(0), CurCallSite(0), CallsEHReturn(0),
|
||||
CallsUnwindInit(0), DbgInfoAvailable(false),
|
||||
UsesVAFloatArgument(false) {
|
||||
: ImmutablePass(ID), Context(MAI, MRI, MOFI) {
|
||||
initializeMachineModuleInfoPass(*PassRegistry::getPassRegistry());
|
||||
// Always emit some info, by default "no personality" info.
|
||||
Personalities.push_back(NULL);
|
||||
AddrLabelSymbols = 0;
|
||||
TheModule = 0;
|
||||
}
|
||||
|
||||
MachineModuleInfo::MachineModuleInfo()
|
||||
@ -274,11 +267,31 @@ MachineModuleInfo::MachineModuleInfo()
|
||||
|
||||
MachineModuleInfo::~MachineModuleInfo() {
|
||||
delete ObjFileMMI;
|
||||
}
|
||||
|
||||
bool MachineModuleInfo::doInitialization(Module &M) {
|
||||
ObjFileMMI = 0;
|
||||
CompactUnwindEncoding = 0;
|
||||
CurCallSite = 0;
|
||||
CallsEHReturn = 0;
|
||||
CallsUnwindInit = 0;
|
||||
DbgInfoAvailable = UsesVAFloatArgument = false;
|
||||
// Always emit some info, by default "no personality" info.
|
||||
Personalities.push_back(NULL);
|
||||
AddrLabelSymbols = 0;
|
||||
TheModule = 0;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool MachineModuleInfo::doFinalization(Module &M) {
|
||||
|
||||
Personalities.clear();
|
||||
|
||||
// FIXME: Why isn't doFinalization being called??
|
||||
//assert(AddrLabelSymbols == 0 && "doFinalization not called");
|
||||
delete AddrLabelSymbols;
|
||||
AddrLabelSymbols = 0;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/// EndFunction - Discard function meta information.
|
||||
|
Reference in New Issue
Block a user