mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-20 16:17:38 +00:00
Re-introduce LeakDetector support for MachineInstrs and MachineBasicBlocks.
Fix a leak that this turned up in LowerSubregs.cpp. And, comment a leak in LiveIntervalAnalysis.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53746 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
#include "llvm/Target/TargetData.h"
|
||||
#include "llvm/Target/TargetInstrDesc.h"
|
||||
#include "llvm/Target/TargetMachine.h"
|
||||
#include "llvm/Support/LeakDetector.h"
|
||||
#include <algorithm>
|
||||
using namespace llvm;
|
||||
|
||||
@@ -26,6 +27,10 @@ MachineBasicBlock::MachineBasicBlock(MachineFunction &mf, const BasicBlock *bb)
|
||||
Insts.getTraits().Parent = this;
|
||||
}
|
||||
|
||||
MachineBasicBlock::~MachineBasicBlock() {
|
||||
LeakDetector::removeGarbageObject(this);
|
||||
}
|
||||
|
||||
std::ostream& llvm::operator<<(std::ostream &OS, const MachineBasicBlock &MBB) {
|
||||
MBB.print(OS);
|
||||
return OS;
|
||||
@@ -46,11 +51,14 @@ void alist_traits<MachineBasicBlock>::addNodeToList(MachineBasicBlock* N) {
|
||||
MachineRegisterInfo &RegInfo = MF.getRegInfo();
|
||||
for (MachineBasicBlock::iterator I = N->begin(), E = N->end(); I != E; ++I)
|
||||
I->AddRegOperandsToUseLists(RegInfo);
|
||||
|
||||
LeakDetector::removeGarbageObject(N);
|
||||
}
|
||||
|
||||
void alist_traits<MachineBasicBlock>::removeNodeFromList(MachineBasicBlock* N) {
|
||||
N->getParent()->removeFromMBBNumbering(N->Number);
|
||||
N->Number = -1;
|
||||
LeakDetector::addGarbageObject(N);
|
||||
}
|
||||
|
||||
|
||||
@@ -65,6 +73,8 @@ void alist_traits<MachineInstr>::addNodeToList(MachineInstr* N) {
|
||||
// use/def lists.
|
||||
MachineFunction *MF = Parent->getParent();
|
||||
N->AddRegOperandsToUseLists(MF->getRegInfo());
|
||||
|
||||
LeakDetector::removeGarbageObject(N);
|
||||
}
|
||||
|
||||
/// removeNodeFromList (MI) - When we remove an instruction from a basic block
|
||||
@@ -77,6 +87,8 @@ void alist_traits<MachineInstr>::removeNodeFromList(MachineInstr* N) {
|
||||
N->RemoveRegOperandsFromUseLists();
|
||||
|
||||
N->setParent(0);
|
||||
|
||||
LeakDetector::addGarbageObject(N);
|
||||
}
|
||||
|
||||
/// transferNodesFromList (MI) - When moving a range of instructions from one
|
||||
|
||||
Reference in New Issue
Block a user