summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-05-23 03:31:47 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-05-23 03:31:47 +0000
commit39aca620db4e846f5a87e2a1e9f29b64352a06a0 (patch)
tree608d0eb5f9e68a58a6ade3a893d0e2f6f318d3e2 /llvm/lib/Target
parentbd6847fbea0ba3ab46acc6dab586aab7f4f1845c (diff)
downloadbcm5719-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.cpp8
-rw-r--r--llvm/lib/Target/R600/AMDGPUTargetMachine.h12
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;
}
OpenPOWER on IntegriCloud