Re-fix bug: Put back MachineCodeForInstruction::dropAllReferences.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1970 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Vikram S. Adve 2002-03-24 03:40:11 +00:00
parent e4e4d4e2f9
commit ded1bf8cd8

View File

@ -18,6 +18,7 @@
#include "llvm/CodeGen/MachineCodeForInstruction.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/InstrSelection.h"
#include "llvm/Instruction.h"
static AnnotationID MCFI_AID(
@ -35,18 +36,37 @@ static struct Initializer {
}
} RegisterAID;
MachineCodeForInstruction &MachineCodeForInstruction::get(const Instruction *I){
MachineCodeForInstruction&
MachineCodeForInstruction::get(const Instruction *I){
return *(MachineCodeForInstruction*)I->getOrCreateAnnotation(MCFI_AID);
}
void MachineCodeForInstruction::destroy(const Instruction *I) {
void
MachineCodeForInstruction::destroy(const Instruction *I) {
I->deleteAnnotation(MCFI_AID);
}
MachineCodeForInstruction::MachineCodeForInstruction() : Annotation(MCFI_AID) {}
void
MachineCodeForInstruction::dropAllReferences()
{
for (unsigned i=0, N=tempVec.size(); i < N; i++)
cast<TmpInstruction>(tempVec[i])->dropAllReferences();
}
MachineCodeForInstruction::~MachineCodeForInstruction() {
MachineCodeForInstruction::MachineCodeForInstruction()
: Annotation(MCFI_AID)
{}
MachineCodeForInstruction::~MachineCodeForInstruction()
{
// Let go of all uses in temp. instructions
dropAllReferences();
// Free the Value objects created to hold intermediate values
for (unsigned i=0, N=tempVec.size(); i < N; i++)
delete tempVec[i];