unique_ptrify FullDependenceAnalysis::DV
authorDavid Blaikie <dblaikie@gmail.com>
Tue, 3 Mar 2015 19:20:18 +0000 (19:20 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Tue, 3 Mar 2015 19:20:18 +0000 (19:20 +0000)
Making this type a little harder to abuse (see workaround relating to
use of the implicit copy ctor in the prior commit)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231104 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Analysis/DependenceAnalysis.h
lib/Analysis/DependenceAnalysis.cpp

index e01aa549099de35afc4848326ece7e5daa2ff23e..9169b7028b782efb9fff4ab8eabcca5d5f20a616 100644 (file)
@@ -221,9 +221,6 @@ namespace llvm {
                    Instruction *Dst,
                    bool LoopIndependent,
                    unsigned Levels);
-    ~FullDependence() {
-      delete[] DV;
-    }
 
     /// isLoopIndependent - Returns true if this is a loop-independent
     /// dependence.
@@ -270,7 +267,7 @@ namespace llvm {
     unsigned short Levels;
     bool LoopIndependent;
     bool Consistent; // Init to true, then refine.
-    DVEntry *DV;
+    std::unique_ptr<DVEntry[]> DV;
     friend class DependenceAnalysis;
   };
 
index 393ee5c516a9875a1c997beee30825b4a999dc1b..d5d2fb2088c2ab45404ff759498f5c968f7a8525 100644 (file)
@@ -226,16 +226,12 @@ bool Dependence::isScalar(unsigned level) const {
 //===----------------------------------------------------------------------===//
 // FullDependence methods
 
-FullDependence::FullDependence(Instruction *Source,
-                               Instruction *Destination,
+FullDependence::FullDependence(Instruction *Source, Instruction *Destination,
                                bool PossiblyLoopIndependent,
-                               unsigned CommonLevels) :
-  Dependence(Source, Destination),
-  Levels(CommonLevels),
-  LoopIndependent(PossiblyLoopIndependent) {
-  Consistent = true;
-  DV = CommonLevels ? new DVEntry[CommonLevels] : nullptr;
-}
+                               unsigned CommonLevels)
+    : Dependence(Source, Destination), Levels(CommonLevels),
+      LoopIndependent(PossiblyLoopIndependent), Consistent(true),
+      DV(CommonLevels ? new DVEntry[CommonLevels] : nullptr) {}
 
 // The rest are simple getters that hide the implementation.