From: Rafael Espindola Date: Thu, 23 May 2013 03:31:47 +0000 (+0000) Subject: Fix a leak on the r600 backend. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=5110102f9f7e7ddcd74d3bce1e5de3f898ba5e7f;p=oota-llvm.git Fix a leak on the r600 backend. This should bring the valgrind bot back to life. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182561 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/R600/AMDGPUTargetMachine.cpp b/lib/Target/R600/AMDGPUTargetMachine.cpp index 71be02a86fe..88dc5832905 100644 --- a/lib/Target/R600/AMDGPUTargetMachine.cpp +++ b/lib/Target/R600/AMDGPUTargetMachine.cpp @@ -64,11 +64,11 @@ AMDGPUTargetMachine::AMDGPUTargetMachine(const Target &T, StringRef TT, InstrItins(&Subtarget.getInstrItineraryData()) { // TLInfo uses InstrInfo so it must be initialized after. if (Subtarget.device()->getGeneration() <= AMDGPUDeviceInfo::HD6XXX) { - InstrInfo = new R600InstrInfo(*this); - TLInfo = new R600TargetLowering(*this); + InstrInfo.reset(new R600InstrInfo(*this)); + TLInfo.reset(new R600TargetLowering(*this)); } else { - InstrInfo = new SIInstrInfo(*this); - TLInfo = new SITargetLowering(*this); + InstrInfo.reset(new SIInstrInfo(*this)); + TLInfo.reset(new SITargetLowering(*this)); } initAsmInfo(); } diff --git a/lib/Target/R600/AMDGPUTargetMachine.h b/lib/Target/R600/AMDGPUTargetMachine.h index 0db66398305..bb26ed94b8e 100644 --- a/lib/Target/R600/AMDGPUTargetMachine.h +++ b/lib/Target/R600/AMDGPUTargetMachine.h @@ -33,8 +33,8 @@ class AMDGPUTargetMachine : public LLVMTargetMachine { const DataLayout Layout; AMDGPUFrameLowering FrameLowering; AMDGPUIntrinsicInfo IntrinsicInfo; - const AMDGPUInstrInfo *InstrInfo; - AMDGPUTargetLowering *TLInfo; + OwningPtr InstrInfo; + OwningPtr TLInfo; const InstrItineraryData *InstrItins; public: @@ -48,12 +48,16 @@ public: virtual const AMDGPUIntrinsicInfo *getIntrinsicInfo() const { return &IntrinsicInfo; } - virtual const AMDGPUInstrInfo *getInstrInfo() const { return InstrInfo; } + virtual const AMDGPUInstrInfo *getInstrInfo() const { + return InstrInfo.get(); + } virtual const AMDGPUSubtarget *getSubtargetImpl() const { return &Subtarget; } virtual const AMDGPURegisterInfo *getRegisterInfo() const { return &InstrInfo->getRegisterInfo(); } - virtual AMDGPUTargetLowering *getTargetLowering() const { return TLInfo; } + virtual AMDGPUTargetLowering *getTargetLowering() const { + return TLInfo.get(); + } virtual const InstrItineraryData *getInstrItineraryData() const { return InstrItins; }