Use unique_ptr for X86Subtarget pointer members.
authorEric Christopher <echristo@gmail.com>
Tue, 10 Jun 2014 23:26:47 +0000 (23:26 +0000)
committerEric Christopher <echristo@gmail.com>
Tue, 10 Jun 2014 23:26:47 +0000 (23:26 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210606 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86Subtarget.cpp
lib/Target/X86/X86Subtarget.h

index 29c44adaa29c6d75bccabc9a95feb48b88cbbdd3..f0c939c47d881373e35d22e3dd7078fb4aca01d5 100644 (file)
@@ -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
index 9e4200c110ab4baa86ad990d080de26308e33944..85da720cbc2faef5e068033d9d7324879fe06174 100644 (file)
@@ -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