summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorEric Christopher <echristo@gmail.com>2014-06-10 23:26:47 +0000
committerEric Christopher <echristo@gmail.com>2014-06-10 23:26:47 +0000
commit9c84db6ba390f4e6ac1d6ce94fa9a6428e0b3007 (patch)
tree93e9981defcadfeff655f8dc102f3683b0ed7770 /lib
parentfe801852732c4f6f2e8467da7d525c7d1109cc77 (diff)
downloadllvm-9c84db6ba390f4e6ac1d6ce94fa9a6428e0b3007.tar.gz
llvm-9c84db6ba390f4e6ac1d6ce94fa9a6428e0b3007.tar.bz2
llvm-9c84db6ba390f4e6ac1d6ce94fa9a6428e0b3007.tar.xz
Use unique_ptr for X86Subtarget pointer members.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210606 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Target/X86/X86Subtarget.cpp19
-rw-r--r--lib/Target/X86/X86Subtarget.h19
2 files changed, 16 insertions, 22 deletions
diff --git a/lib/Target/X86/X86Subtarget.cpp b/lib/Target/X86/X86Subtarget.cpp
index 29c44adaa2..f0c939c47d 100644
--- a/lib/Target/X86/X86Subtarget.cpp
+++ b/lib/Target/X86/X86Subtarget.cpp
@@ -351,19 +351,12 @@ X86Subtarget::X86Subtarget(const std::string &TT, const std::string &CPU,
resetSubtargetFeatures(CPU, FS);
// Ordering here is important. X86InstrInfo initializes X86RegisterInfo which
// X86TargetLowering needs.
- InstrInfo = new X86InstrInfo(*this);
- TLInfo = new X86TargetLowering(TM);
- FrameLowering = new X86FrameLowering(TargetFrameLowering::StackGrowsDown,
- getStackAlignment(),
- is64Bit() ? -8 : -4);
- JITInfo = new X86JITInfo(hasSSE1());
-}
-
-X86Subtarget::~X86Subtarget() {
- delete TLInfo;
- delete InstrInfo;
- delete FrameLowering;
- delete JITInfo;
+ InstrInfo = make_unique<X86InstrInfo>(*this);
+ TLInfo = make_unique<X86TargetLowering>(TM);
+ FrameLowering =
+ make_unique<X86FrameLowering>(TargetFrameLowering::StackGrowsDown,
+ getStackAlignment(), is64Bit() ? -8 : -4);
+ JITInfo = make_unique<X86JITInfo>(hasSSE1());
}
bool
diff --git a/lib/Target/X86/X86Subtarget.h b/lib/Target/X86/X86Subtarget.h
index 9e4200c110..85da720cbc 100644
--- a/lib/Target/X86/X86Subtarget.h
+++ b/lib/Target/X86/X86Subtarget.h
@@ -229,10 +229,10 @@ private:
// Calculates type size & alignment
const DataLayout DL;
X86SelectionDAGInfo TSInfo;
- X86TargetLowering *TLInfo;
- X86InstrInfo *InstrInfo;
- X86FrameLowering *FrameLowering;
- X86JITInfo *JITInfo;
+ std::unique_ptr<X86TargetLowering> TLInfo;
+ std::unique_ptr<X86InstrInfo> InstrInfo;
+ std::unique_ptr<X86FrameLowering> FrameLowering;
+ std::unique_ptr<X86JITInfo> JITInfo;
public:
/// This constructor initializes the data members to match that
@@ -241,14 +241,15 @@ public:
X86Subtarget(const std::string &TT, const std::string &CPU,
const std::string &FS, X86TargetMachine &TM,
unsigned StackAlignOverride);
- ~X86Subtarget();
- const X86TargetLowering *getTargetLowering() const { return TLInfo; }
- const X86InstrInfo *getInstrInfo() const { return InstrInfo; }
+ const X86TargetLowering *getTargetLowering() const { return TLInfo.get(); }
+ const X86InstrInfo *getInstrInfo() const { return InstrInfo.get(); }
const DataLayout *getDataLayout() const { return &DL; }
- const X86FrameLowering *getFrameLowering() const { return FrameLowering; }
+ const X86FrameLowering *getFrameLowering() const {
+ return FrameLowering.get();
+ }
const X86SelectionDAGInfo *getSelectionDAGInfo() const { return &TSInfo; }
- X86JITInfo *getJITInfo() { return JITInfo; }
+ X86JITInfo *getJITInfo() { return JITInfo.get(); }
/// getStackAlignment - Returns the minimum alignment known to hold of the
/// stack frame on entry to the function and which must be maintained by every