UseListShuffleVector: Code reorganization, NFC
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Tue, 29 Jul 2014 20:45:49 +0000 (20:45 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Tue, 29 Jul 2014 20:45:49 +0000 (20:45 +0000)
llvm-svn: 214212

llvm/include/llvm/IR/UseListOrder.h

index c56d1ca..420e6d4 100644 (file)
@@ -42,12 +42,18 @@ class UseListShuffleVector {
     return isSmall() ? Storage.Array : Storage.Ptr;
   }
 
-public:
-  UseListShuffleVector() : Size(0) {}
-  UseListShuffleVector(UseListShuffleVector &&X) {
+  void destroy() {
+    if (!isSmall())
+      delete[] Storage.Ptr;
+  }
+  void moveUnchecked(UseListShuffleVector &X) {
     std::memcpy(this, &X, sizeof(UseListShuffleVector));
     X.Size = 0;
   }
+
+public:
+  UseListShuffleVector() : Size(0) {}
+  UseListShuffleVector(UseListShuffleVector &&X) { moveUnchecked(X); }
   UseListShuffleVector(const UseListShuffleVector &X) {
     std::memcpy(this, &X, sizeof(UseListShuffleVector));
     if (!isSmall()) {
@@ -59,10 +65,7 @@ public:
     if (!isSmall())
       Storage.Ptr = new unsigned[Size];
   }
-  ~UseListShuffleVector() {
-    if (!isSmall())
-      delete[] Storage.Ptr;
-  }
+  ~UseListShuffleVector() { destroy(); }
 
   typedef unsigned *iterator;
   typedef const unsigned *const_iterator;