diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-05-23 03:31:47 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-05-23 03:31:47 +0000 |
commit | 39aca620db4e846f5a87e2a1e9f29b64352a06a0 (patch) | |
tree | 608d0eb5f9e68a58a6ade3a893d0e2f6f318d3e2 /llvm/lib/Target | |
parent | bd6847fbea0ba3ab46acc6dab586aab7f4f1845c (diff) | |
download | bcm5719-llvm-39aca620db4e846f5a87e2a1e9f29b64352a06a0.tar.gz bcm5719-llvm-39aca620db4e846f5a87e2a1e9f29b64352a06a0.zip |
Fix a leak on the r600 backend.
This should bring the valgrind bot back to life.
llvm-svn: 182561
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r-- | llvm/lib/Target/R600/AMDGPUTargetMachine.cpp | 8 | ||||
-rw-r--r-- | llvm/lib/Target/R600/AMDGPUTargetMachine.h | 12 |
2 files changed, 12 insertions, 8 deletions
diff --git a/llvm/lib/Target/R600/AMDGPUTargetMachine.cpp b/llvm/lib/Target/R600/AMDGPUTargetMachine.cpp index 71be02a86fe..88dc5832905 100644 --- a/llvm/lib/Target/R600/AMDGPUTargetMachine.cpp +++ b/llvm/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/llvm/lib/Target/R600/AMDGPUTargetMachine.h b/llvm/lib/Target/R600/AMDGPUTargetMachine.h index 0db66398305..bb26ed94b8e 100644 --- a/llvm/lib/Target/R600/AMDGPUTargetMachine.h +++ b/llvm/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<AMDGPUInstrInfo> InstrInfo; + OwningPtr<AMDGPUTargetLowering> 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; } |