[SE] Add .clang-format
authorJason Henline <jhen@google.com>
Tue, 13 Sep 2016 19:25:43 +0000 (19:25 +0000)
committerJason Henline <jhen@google.com>
Tue, 13 Sep 2016 19:25:43 +0000 (19:25 +0000)
Summary:
The .clang-tidy file is copied from the top-level LLVM source directory.

Also fix warnings generated by clang-format:

* Moved SimpleHostPlatformDevice.h so its header include guard could
  have the right format.
* Changed signatures of methods taking llvm::Twine by value to take it
  by const ref instead.
* Add "noexcept" to some move constructors and assignment operators.
* Removed a bunch of places where single-statement loops and
  conditionals were surrounded with braces. (This was not found by the
  current clang-tidy, but with a local patch that I hope to upstream
  soon.)

Reviewers: jlebar, jprice

Subscribers: parallel_libs-commits

Differential Revision: https://reviews.llvm.org/D24468

llvm-svn: 281374

20 files changed:
parallel-libs/.clang-tidy [new file with mode: 0644]
parallel-libs/streamexecutor/include/streamexecutor/Device.h
parallel-libs/streamexecutor/include/streamexecutor/DeviceMemory.h
parallel-libs/streamexecutor/include/streamexecutor/Error.h
parallel-libs/streamexecutor/include/streamexecutor/HostMemory.h
parallel-libs/streamexecutor/include/streamexecutor/Kernel.h
parallel-libs/streamexecutor/include/streamexecutor/KernelSpec.h
parallel-libs/streamexecutor/include/streamexecutor/Stream.h
parallel-libs/streamexecutor/include/streamexecutor/unittests/CoreTests/SimpleHostPlatformDevice.h [new file with mode: 0644]
parallel-libs/streamexecutor/lib/Device.cpp
parallel-libs/streamexecutor/lib/DeviceMemory.cpp
parallel-libs/streamexecutor/lib/Error.cpp
parallel-libs/streamexecutor/lib/HostMemory.cpp
parallel-libs/streamexecutor/lib/Kernel.cpp
parallel-libs/streamexecutor/lib/KernelSpec.cpp
parallel-libs/streamexecutor/lib/Stream.cpp
parallel-libs/streamexecutor/unittests/CoreTests/DeviceTest.cpp
parallel-libs/streamexecutor/unittests/CoreTests/PackedKernelArgumentArrayTest.cpp
parallel-libs/streamexecutor/unittests/CoreTests/SimpleHostPlatformDevice.h [deleted file]
parallel-libs/streamexecutor/unittests/CoreTests/StreamTest.cpp

diff --git a/parallel-libs/.clang-tidy b/parallel-libs/.clang-tidy
new file mode 100644 (file)
index 0000000..53a5a7e
--- /dev/null
@@ -0,0 +1,17 @@
+Checks: '-*,clang-diagnostic-*,llvm-*,misc-*,-misc-unused-parameters,readability-identifier-naming'
+CheckOptions:
+  - key:             readability-identifier-naming.ClassCase
+    value:           CamelCase
+  - key:             readability-identifier-naming.EnumCase
+    value:           CamelCase
+  - key:             readability-identifier-naming.FunctionCase
+    value:           lowerCase
+  - key:             readability-identifier-naming.MemberCase
+    value:           CamelCase
+  - key:             readability-identifier-naming.ParameterCase
+    value:           CamelCase
+  - key:             readability-identifier-naming.UnionCase
+    value:           CamelCase
+  - key:             readability-identifier-naming.VariableCase
+    value:           CamelCase
+
index 83840e82d011b4e2181b6614387d39fcb8a49be4..53c0c2f1cd2072e3d95ee98c266598ad69edd236 100644 (file)
@@ -40,9 +40,8 @@ public:
                                    KernelT>::type>
   createKernel(const MultiKernelLoaderSpec &Spec) {
     Expected<const void *> MaybeKernelHandle = PDevice->createKernel(Spec);
-    if (!MaybeKernelHandle) {
+    if (!MaybeKernelHandle)
       return MaybeKernelHandle.takeError();
-    }
     return KernelT(PDevice, *MaybeKernelHandle, Spec.getKernelName());
   }
 
@@ -68,9 +67,8 @@ public:
   Expected<RegisteredHostMemory<T>>
   registerHostMemory(llvm::MutableArrayRef<T> Memory) {
     if (Error E = PDevice->registerHostMemory(Memory.data(),
-                                              Memory.size() * sizeof(T))) {
+                                              Memory.size() * sizeof(T)))
       return std::move(E);
-    }
     return RegisteredHostMemory<T>(this, Memory.data(), Memory.size());
   }
 
index bad6f6c99a14cb8e1b75e03580ded1ba6bea56fc..d8f7cefc39803c005e035d258b6b0d1da613819f 100644 (file)
@@ -143,7 +143,7 @@ protected:
       : TheDevice(D), Handle(Handle), ByteCount(ByteCount) {}
 
   /// Transfer ownership of the underlying handle.
-  GlobalDeviceMemoryBase(GlobalDeviceMemoryBase &&Other)
+  GlobalDeviceMemoryBase(GlobalDeviceMemoryBase &&Other) noexcept
       : TheDevice(Other.TheDevice), Handle(Other.Handle),
         ByteCount(Other.ByteCount) {
     Other.TheDevice = nullptr;
@@ -151,7 +151,7 @@ protected:
     Other.ByteCount = 0;
   }
 
-  GlobalDeviceMemoryBase &operator=(GlobalDeviceMemoryBase &&Other) {
+  GlobalDeviceMemoryBase &operator=(GlobalDeviceMemoryBase &&Other) noexcept {
     TheDevice = Other.TheDevice;
     Handle = Other.Handle;
     ByteCount = Other.ByteCount;
@@ -178,8 +178,8 @@ class GlobalDeviceMemory : public GlobalDeviceMemoryBase {
 public:
   using ElementTy = ElemT;
 
-  GlobalDeviceMemory(GlobalDeviceMemory &&Other) = default;
-  GlobalDeviceMemory &operator=(GlobalDeviceMemory &&Other) = default;
+  GlobalDeviceMemory(GlobalDeviceMemory &&) noexcept;
+  GlobalDeviceMemory &operator=(GlobalDeviceMemory &&) noexcept;
 
   /// Returns the number of elements of type ElemT that constitute this
   /// allocation.
@@ -203,6 +203,14 @@ private:
       : GlobalDeviceMemoryBase(D, Handle, ElementCount * sizeof(ElemT)) {}
 };
 
+template <typename ElemT>
+GlobalDeviceMemory<ElemT>::GlobalDeviceMemory(
+    GlobalDeviceMemory<ElemT> &&) noexcept = default;
+
+template <typename ElemT>
+GlobalDeviceMemory<ElemT> &GlobalDeviceMemory<ElemT>::
+operator=(GlobalDeviceMemory<ElemT> &&) noexcept = default;
+
 /// A class to represent the size of a dynamic shared memory buffer of elements
 /// of type T on a device.
 ///
index b2d1ebb830d5c4cfa1b04ca9909c077a16cf2f40..d33a5a6a79a71fca33829506e76427b17284c2c1 100644 (file)
@@ -178,7 +178,7 @@ using llvm::Expected;
 using llvm::Twine;
 
 /// Makes an Error object from an error message.
-Error make_error(Twine Message);
+Error make_error(const Twine &Message);
 
 /// Consumes the input error and returns its error message.
 ///
index cea98f4ed741a174641e23838c2ccda5388047f6..18ff184ba68bc814ad347ca6d1991c199e670578 100644 (file)
@@ -151,14 +151,14 @@ public:
   RegisteredHostMemory(const RegisteredHostMemory &) = delete;
   RegisteredHostMemory &operator=(const RegisteredHostMemory &) = delete;
 
-  RegisteredHostMemory(RegisteredHostMemory &&Other)
+  RegisteredHostMemory(RegisteredHostMemory &&Other) noexcept
       : TheDevice(Other.TheDevice), Pointer(Other.Pointer),
         ElementCount(Other.ElementCount) {
     Other.TheDevice = nullptr;
     Other.Pointer = nullptr;
   }
 
-  RegisteredHostMemory &operator=(RegisteredHostMemory &&Other) {
+  RegisteredHostMemory &operator=(RegisteredHostMemory &&Other) noexcept {
     TheDevice = Other.TheDevice;
     Pointer = Other.Pointer;
     ElementCount = Other.ElementCount;
index d8cbb8ad26b4436a032c6381a8ead21d64985786..eb02381642865df8257d1a47855cdc25d50538ee 100644 (file)
@@ -41,8 +41,8 @@ public:
   KernelBase(const KernelBase &Other) = delete;
   KernelBase &operator=(const KernelBase &Other) = delete;
 
-  KernelBase(KernelBase &&Other);
-  KernelBase &operator=(KernelBase &&Other);
+  KernelBase(KernelBase &&Other) noexcept;
+  KernelBase &operator=(KernelBase &&Other) noexcept;
 
   ~KernelBase();
 
@@ -68,10 +68,17 @@ public:
          llvm::StringRef Name)
       : KernelBase(D, PlatformKernelHandle, Name) {}
 
-  Kernel(Kernel &&Other) = default;
-  Kernel &operator=(Kernel &&Other) = default;
+  Kernel(Kernel &&Other) noexcept;
+  Kernel &operator=(Kernel &&Other) noexcept;
 };
 
+template <typename... ParameterTs>
+Kernel<ParameterTs...>::Kernel(Kernel<ParameterTs...> &&) noexcept = default;
+
+template <typename... ParameterTs>
+Kernel<ParameterTs...> &Kernel<ParameterTs...>::
+operator=(Kernel<ParameterTs...> &&) noexcept = default;
+
 } // namespace streamexecutor
 
 #endif // STREAMEXECUTOR_KERNEL_H
index e3d2beca04b22ef225f3909aecf5b0fede04d19f..c4b6722caf6db435469e57bf8c96d0c8ae197538 100644 (file)
@@ -200,9 +200,8 @@ private:
 class MultiKernelLoaderSpec {
 public:
   std::string getKernelName() const {
-    if (TheKernelName) {
+    if (TheKernelName)
       return *TheKernelName;
-    }
     return "";
   }
 
index c293464d364cbfd85c503cf1e94f85b9a4413729..bdff7ff9701ec32931836903e94453fa8153f970 100644 (file)
@@ -66,8 +66,8 @@ public:
   Stream(const Stream &Other) = delete;
   Stream &operator=(const Stream &Other) = delete;
 
-  Stream(Stream &&Other);
-  Stream &operator=(Stream &&Other);
+  Stream(Stream &&Other) noexcept;
+  Stream &operator=(Stream &&Other) noexcept;
 
   ~Stream();
 
@@ -288,7 +288,7 @@ private:
   /// Sets the error state from an error message.
   ///
   /// Does not overwrite the error if it is already set.
-  void setError(llvm::Twine Message) {
+  void setError(const llvm::Twine &Message) {
     llvm::sys::ScopedWriter WriterLock(*ErrorMessageMutex);
     if (!ErrorMessage)
       ErrorMessage = Message.str();
diff --git a/parallel-libs/streamexecutor/include/streamexecutor/unittests/CoreTests/SimpleHostPlatformDevice.h b/parallel-libs/streamexecutor/include/streamexecutor/unittests/CoreTests/SimpleHostPlatformDevice.h
new file mode 100644 (file)
index 0000000..3c3f736
--- /dev/null
@@ -0,0 +1,138 @@
+//===-- SimpleHostPlatformDevice.h - Host device for testing ----*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+///
+/// \file
+/// The SimpleHostPlatformDevice class is a streamexecutor::PlatformDevice that
+/// is really just the host processor and memory. It is useful for testing
+/// because no extra device platform is required.
+///
+//===----------------------------------------------------------------------===//
+
+#ifndef STREAMEXECUTOR_UNITTESTS_CORETESTS_SIMPLEHOSTPLATFORMDEVICE_H
+#define STREAMEXECUTOR_UNITTESTS_CORETESTS_SIMPLEHOSTPLATFORMDEVICE_H
+
+#include <cstdlib>
+#include <cstring>
+
+#include "streamexecutor/PlatformDevice.h"
+
+namespace streamexecutor {
+namespace test {
+
+/// A streamexecutor::PlatformDevice that simply forwards all operations to the
+/// host platform.
+///
+/// The allocate and copy methods are simple wrappers for std::malloc and
+/// std::memcpy.
+class SimpleHostPlatformDevice : public streamexecutor::PlatformDevice {
+public:
+  std::string getName() const override { return "SimpleHostPlatformDevice"; }
+
+  streamexecutor::Expected<const void *> createStream() override {
+    return nullptr;
+  }
+
+  streamexecutor::Expected<void *>
+  allocateDeviceMemory(size_t ByteCount) override {
+    return std::malloc(ByteCount);
+  }
+
+  streamexecutor::Error freeDeviceMemory(const void *Handle) override {
+    std::free(const_cast<void *>(Handle));
+    return streamexecutor::Error::success();
+  }
+
+  streamexecutor::Error registerHostMemory(void *Memory,
+                                           size_t ByteCount) override {
+    return streamexecutor::Error::success();
+  }
+
+  streamexecutor::Error unregisterHostMemory(const void *Memory) override {
+    return streamexecutor::Error::success();
+  }
+
+  streamexecutor::Error copyD2H(const void *StreamHandle,
+                                const void *DeviceHandleSrc,
+                                size_t SrcByteOffset, void *HostDst,
+                                size_t DstByteOffset,
+                                size_t ByteCount) override {
+    std::memcpy(static_cast<char *>(HostDst) + DstByteOffset,
+                static_cast<const char *>(DeviceHandleSrc) + SrcByteOffset,
+                ByteCount);
+    return streamexecutor::Error::success();
+  }
+
+  streamexecutor::Error copyH2D(const void *StreamHandle, const void *HostSrc,
+                                size_t SrcByteOffset,
+                                const void *DeviceHandleDst,
+                                size_t DstByteOffset,
+                                size_t ByteCount) override {
+    std::memcpy(static_cast<char *>(const_cast<void *>(DeviceHandleDst)) +
+                    DstByteOffset,
+                static_cast<const char *>(HostSrc) + SrcByteOffset, ByteCount);
+    return streamexecutor::Error::success();
+  }
+
+  streamexecutor::Error
+  copyD2D(const void *StreamHandle, const void *DeviceHandleSrc,
+          size_t SrcByteOffset, const void *DeviceHandleDst,
+          size_t DstByteOffset, size_t ByteCount) override {
+    std::memcpy(static_cast<char *>(const_cast<void *>(DeviceHandleDst)) +
+                    DstByteOffset,
+                static_cast<const char *>(DeviceHandleSrc) + SrcByteOffset,
+                ByteCount);
+    return streamexecutor::Error::success();
+  }
+
+  streamexecutor::Error synchronousCopyD2H(const void *DeviceHandleSrc,
+                                           size_t SrcByteOffset, void *HostDst,
+                                           size_t DstByteOffset,
+                                           size_t ByteCount) override {
+    std::memcpy(static_cast<char *>(HostDst) + DstByteOffset,
+                static_cast<const char *>(DeviceHandleSrc) + SrcByteOffset,
+                ByteCount);
+    return streamexecutor::Error::success();
+  }
+
+  streamexecutor::Error synchronousCopyH2D(const void *HostSrc,
+                                           size_t SrcByteOffset,
+                                           const void *DeviceHandleDst,
+                                           size_t DstByteOffset,
+                                           size_t ByteCount) override {
+    std::memcpy(static_cast<char *>(const_cast<void *>(DeviceHandleDst)) +
+                    DstByteOffset,
+                static_cast<const char *>(HostSrc) + SrcByteOffset, ByteCount);
+    return streamexecutor::Error::success();
+  }
+
+  streamexecutor::Error synchronousCopyD2D(const void *DeviceHandleSrc,
+                                           size_t SrcByteOffset,
+                                           const void *DeviceHandleDst,
+                                           size_t DstByteOffset,
+                                           size_t ByteCount) override {
+    std::memcpy(static_cast<char *>(const_cast<void *>(DeviceHandleDst)) +
+                    DstByteOffset,
+                static_cast<const char *>(DeviceHandleSrc) + SrcByteOffset,
+                ByteCount);
+    return streamexecutor::Error::success();
+  }
+
+  /// Gets the value at the given index from a GlobalDeviceMemory<T> instance
+  /// created by this class.
+  template <typename T>
+  static T getDeviceValue(const streamexecutor::GlobalDeviceMemory<T> &Memory,
+                          size_t Index) {
+    return static_cast<const T *>(Memory.getHandle())[Index];
+  }
+};
+
+} // namespace test
+} // namespace streamexecutor
+
+#endif // STREAMEXECUTOR_UNITTESTS_CORETESTS_SIMPLEHOSTPLATFORMDEVICE_H
index 260c1ba17cd863c2243855479615c89dcb422354..2bed3e7be1601cd4c0f9de7b192df33b4d6993e8 100644 (file)
@@ -29,9 +29,8 @@ Device::~Device() = default;
 
 Expected<Stream> Device::createStream() {
   Expected<const void *> MaybePlatformStream = PDevice->createStream();
-  if (!MaybePlatformStream) {
+  if (!MaybePlatformStream)
     return MaybePlatformStream.takeError();
-  }
   return Stream(PDevice, *MaybePlatformStream);
 }
 
index 62b702b8acfd76b2e36fc34a7be5ac0f46ee7b68..8447a60b1ca5efd64e59cede4e0a52af7ebf672b 100644 (file)
 namespace streamexecutor {
 
 GlobalDeviceMemoryBase::~GlobalDeviceMemoryBase() {
-  if (Handle) {
+  if (Handle)
     // TODO(jhen): How to handle errors here.
     consumeError(TheDevice->freeDeviceMemory(*this));
-  }
 }
 
 } // namespace streamexecutor
index 1f9d4a7834de9ee0576d6ccffb0c5c11fbba9070..0d728fab669fa727458800693ffe41b598d69ddd 100644 (file)
@@ -44,14 +44,13 @@ char StreamExecutorError::ID = 0;
 
 namespace streamexecutor {
 
-Error make_error(Twine Message) {
+Error make_error(const Twine &Message) {
   return llvm::make_error<StreamExecutorError>(Message.str());
 }
 
 std::string consumeAndGetMessage(Error &&E) {
-  if (!E) {
+  if (!E)
     return "success";
-  }
   std::string Message;
   llvm::handleAllErrors(std::move(E),
                         [&Message](const StreamExecutorError &SEE) {
index f7fbe044aa36db8b14b8d7a2cfc6787fd7962094..8eba7e6b56338619e463c7aca1afd6a950356758 100644 (file)
@@ -20,9 +20,8 @@ namespace internal {
 
 void destroyRegisteredHostMemoryInternals(Device *TheDevice, void *Pointer) {
   // TODO(jhen): How to handle errors here?
-  if (Pointer) {
+  if (Pointer)
     consumeError(TheDevice->unregisterHostMemory(Pointer));
-  }
 }
 
 } // namespace internal
index 55a83514f48560c05b11d3fff2ce3fc701bbdb08..911ac6656aab730275d81afff3f0c64fcbff811a 100644 (file)
@@ -33,7 +33,7 @@ KernelBase::KernelBase(PlatformDevice *D, const void *PlatformKernelHandle,
          "cannot construct a kernel object with a null platform kernel handle");
 }
 
-KernelBase::KernelBase(KernelBase &&Other)
+KernelBase::KernelBase(KernelBase &&Other) noexcept
     : PDevice(Other.PDevice), PlatformKernelHandle(Other.PlatformKernelHandle),
       Name(std::move(Other.Name)),
       DemangledName(std::move(Other.DemangledName)) {
@@ -41,7 +41,7 @@ KernelBase::KernelBase(KernelBase &&Other)
   Other.PlatformKernelHandle = nullptr;
 }
 
-KernelBase &KernelBase::operator=(KernelBase &&Other) {
+KernelBase &KernelBase::operator=(KernelBase &&Other) noexcept {
   PDevice = Other.PDevice;
   PlatformKernelHandle = Other.PlatformKernelHandle;
   Name = std::move(Other.Name);
index d2715aa88a59b22a25044a87f235b88b342bec02..b5753a489d1ac35a1bd3b72841bda001edf59456 100644 (file)
@@ -25,9 +25,8 @@ CUDAPTXInMemorySpec::CUDAPTXInMemorySpec(
     llvm::StringRef KernelName,
     const llvm::ArrayRef<CUDAPTXInMemorySpec::PTXSpec> SpecList)
     : KernelLoaderSpec(KernelName) {
-  for (const auto &Spec : SpecList) {
+  for (const auto &Spec : SpecList)
     PTXByComputeCapability.emplace(Spec.TheComputeCapability, Spec.PTXCode);
-  }
 }
 
 const char *CUDAPTXInMemorySpec::getCode(int ComputeCapabilityMajor,
@@ -35,9 +34,8 @@ const char *CUDAPTXInMemorySpec::getCode(int ComputeCapabilityMajor,
   auto PTXIter =
       PTXByComputeCapability.find(CUDAPTXInMemorySpec::ComputeCapability{
           ComputeCapabilityMajor, ComputeCapabilityMinor});
-  if (PTXIter == PTXByComputeCapability.end()) {
+  if (PTXIter == PTXByComputeCapability.end())
     return nullptr;
-  }
   return PTXIter->second;
 }
 
@@ -50,12 +48,11 @@ OpenCLTextInMemorySpec::OpenCLTextInMemorySpec(llvm::StringRef KernelName,
     : KernelLoaderSpec(KernelName), Text(Text) {}
 
 void MultiKernelLoaderSpec::setKernelName(llvm::StringRef KernelName) {
-  if (TheKernelName) {
+  if (TheKernelName)
     assert(KernelName.equals(*TheKernelName) &&
            "different kernel names in one MultiKernelLoaderSpec");
-  } else {
+  else
     TheKernelName = llvm::make_unique<std::string>(KernelName);
-  }
 }
 
 MultiKernelLoaderSpec &MultiKernelLoaderSpec::addCUDAPTXInMemory(
index 96aad044c9c16f7009ee52d396b1bacb4fc50652..fe135b4d0af6acd71265520f9da4fbc7f79e041a 100644 (file)
@@ -27,7 +27,7 @@ Stream::Stream(PlatformDevice *D, const void *PlatformStreamHandle)
          "cannot construct a stream object with a null platform stream handle");
 }
 
-Stream::Stream(Stream &&Other)
+Stream::Stream(Stream &&Other) noexcept
     : PDevice(Other.PDevice), PlatformStreamHandle(Other.PlatformStreamHandle),
       ErrorMessageMutex(std::move(Other.ErrorMessageMutex)),
       ErrorMessage(std::move(Other.ErrorMessage)) {
@@ -35,7 +35,7 @@ Stream::Stream(Stream &&Other)
   Other.PlatformStreamHandle = nullptr;
 }
 
-Stream &Stream::operator=(Stream &&Other) {
+Stream &Stream::operator=(Stream &&Other) noexcept {
   PDevice = Other.PDevice;
   PlatformStreamHandle = Other.PlatformStreamHandle;
   ErrorMessageMutex = std::move(Other.ErrorMessageMutex);
index 8537f0a3af0abeef448f2723466c17f70e4f719d..306a9567d206dfc399218d91a89748f01b4a96ac 100644 (file)
@@ -15,9 +15,9 @@
 #include <cstdlib>
 #include <cstring>
 
-#include "SimpleHostPlatformDevice.h"
 #include "streamexecutor/Device.h"
 #include "streamexecutor/PlatformDevice.h"
+#include "streamexecutor/unittests/CoreTests/SimpleHostPlatformDevice.h"
 
 #include "gtest/gtest.h"
 
@@ -96,15 +96,13 @@ TEST_F(DeviceTest, RegisterAndUnregisterHostMemory) {
 TEST_F(DeviceTest, SyncCopyD2HToMutableArrayRefByCount) {
   EXPECT_NO_ERROR(
       Device.synchronousCopyD2H(DeviceA5, MutableArrayRef<int>(Host5), 5));
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(HostA5[I], Host5[I]);
-  }
 
   EXPECT_NO_ERROR(
       Device.synchronousCopyD2H(DeviceB5, MutableArrayRef<int>(Host5), 2));
-  for (int I = 0; I < 2; ++I) {
+  for (int I = 0; I < 2; ++I)
     EXPECT_EQ(HostB5[I], Host5[I]);
-  }
 
   EXPECT_ERROR(
       Device.synchronousCopyD2H(DeviceA7, MutableArrayRef<int>(Host5), 7));
@@ -119,9 +117,8 @@ TEST_F(DeviceTest, SyncCopyD2HToMutableArrayRefByCount) {
 TEST_F(DeviceTest, SyncCopyD2HToMutableArrayRef) {
   EXPECT_NO_ERROR(
       Device.synchronousCopyD2H(DeviceA5, MutableArrayRef<int>(Host5)));
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(HostA5[I], Host5[I]);
-  }
 
   EXPECT_ERROR(
       Device.synchronousCopyD2H(DeviceA7, MutableArrayRef<int>(Host5)));
@@ -132,9 +129,8 @@ TEST_F(DeviceTest, SyncCopyD2HToMutableArrayRef) {
 
 TEST_F(DeviceTest, SyncCopyD2HToPointer) {
   EXPECT_NO_ERROR(Device.synchronousCopyD2H(DeviceA5, Host5, 5));
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(HostA5[I], Host5[I]);
-  }
 
   EXPECT_ERROR(Device.synchronousCopyD2H(DeviceA5, Host7, 7));
 }
@@ -142,15 +138,13 @@ TEST_F(DeviceTest, SyncCopyD2HToPointer) {
 TEST_F(DeviceTest, SyncCopyD2HSliceToMutableArrayRefByCount) {
   EXPECT_NO_ERROR(Device.synchronousCopyD2H(
       DeviceA5.asSlice().slice(1), MutableArrayRef<int>(Host5 + 1, 4), 4));
-  for (int I = 1; I < 5; ++I) {
+  for (int I = 1; I < 5; ++I)
     EXPECT_EQ(HostA5[I], Host5[I]);
-  }
 
   EXPECT_NO_ERROR(Device.synchronousCopyD2H(DeviceB5.asSlice().drop_back(1),
                                             MutableArrayRef<int>(Host5), 2));
-  for (int I = 0; I < 2; ++I) {
+  for (int I = 0; I < 2; ++I)
     EXPECT_EQ(HostB5[I], Host5[I]);
-  }
 
   EXPECT_ERROR(Device.synchronousCopyD2H(DeviceA7.asSlice(),
                                          MutableArrayRef<int>(Host5), 7));
@@ -165,9 +159,8 @@ TEST_F(DeviceTest, SyncCopyD2HSliceToMutableArrayRefByCount) {
 TEST_F(DeviceTest, SyncCopyD2HSliceToMutableArrayRef) {
   EXPECT_NO_ERROR(Device.synchronousCopyD2H(DeviceA7.asSlice().slice(1, 5),
                                             MutableArrayRef<int>(Host5)));
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(HostA7[I + 1], Host5[I]);
-  }
 
   EXPECT_ERROR(Device.synchronousCopyD2H(DeviceA7.asSlice().drop_back(1),
                                          MutableArrayRef<int>(Host5)));
@@ -179,9 +172,8 @@ TEST_F(DeviceTest, SyncCopyD2HSliceToMutableArrayRef) {
 TEST_F(DeviceTest, SyncCopyD2HSliceToPointer) {
   EXPECT_NO_ERROR(
       Device.synchronousCopyD2H(DeviceA5.asSlice().slice(1), Host5 + 1, 4));
-  for (int I = 1; I < 5; ++I) {
+  for (int I = 1; I < 5; ++I)
     EXPECT_EQ(HostA5[I], Host5[I]);
-  }
 
   EXPECT_ERROR(Device.synchronousCopyD2H(DeviceA5.asSlice(), Host7, 7));
 }
@@ -190,14 +182,12 @@ TEST_F(DeviceTest, SyncCopyD2HSliceToPointer) {
 
 TEST_F(DeviceTest, SyncCopyH2DToArrayRefByCount) {
   EXPECT_NO_ERROR(Device.synchronousCopyH2D(ArrayRef<int>(Host5), DeviceA5, 5));
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), Host5[I]);
-  }
 
   EXPECT_NO_ERROR(Device.synchronousCopyH2D(ArrayRef<int>(Host5), DeviceB5, 2));
-  for (int I = 0; I < 2; ++I) {
+  for (int I = 0; I < 2; ++I)
     EXPECT_EQ(getDeviceValue(DeviceB5, I), Host5[I]);
-  }
 
   EXPECT_ERROR(Device.synchronousCopyH2D(ArrayRef<int>(Host7), DeviceA5, 7));
 
@@ -208,9 +198,8 @@ TEST_F(DeviceTest, SyncCopyH2DToArrayRefByCount) {
 
 TEST_F(DeviceTest, SyncCopyH2DToArrayRef) {
   EXPECT_NO_ERROR(Device.synchronousCopyH2D(ArrayRef<int>(Host5), DeviceA5));
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), Host5[I]);
-  }
 
   EXPECT_ERROR(Device.synchronousCopyH2D(ArrayRef<int>(Host5), DeviceA7));
 
@@ -219,9 +208,8 @@ TEST_F(DeviceTest, SyncCopyH2DToArrayRef) {
 
 TEST_F(DeviceTest, SyncCopyH2DToPointer) {
   EXPECT_NO_ERROR(Device.synchronousCopyH2D(Host5, DeviceA5, 5));
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), Host5[I]);
-  }
 
   EXPECT_ERROR(Device.synchronousCopyH2D(Host7, DeviceA5, 7));
 }
@@ -229,15 +217,13 @@ TEST_F(DeviceTest, SyncCopyH2DToPointer) {
 TEST_F(DeviceTest, SyncCopyH2DSliceToArrayRefByCount) {
   EXPECT_NO_ERROR(Device.synchronousCopyH2D(ArrayRef<int>(Host5 + 1, 4),
                                             DeviceA5.asSlice().slice(1), 4));
-  for (int I = 1; I < 5; ++I) {
+  for (int I = 1; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), Host5[I]);
-  }
 
   EXPECT_NO_ERROR(Device.synchronousCopyH2D(
       ArrayRef<int>(Host5), DeviceB5.asSlice().drop_back(1), 2));
-  for (int I = 0; I < 2; ++I) {
+  for (int I = 0; I < 2; ++I)
     EXPECT_EQ(getDeviceValue(DeviceB5, I), Host5[I]);
-  }
 
   EXPECT_ERROR(
       Device.synchronousCopyH2D(ArrayRef<int>(Host7), DeviceA5.asSlice(), 7));
@@ -252,9 +238,8 @@ TEST_F(DeviceTest, SyncCopyH2DSliceToArrayRefByCount) {
 TEST_F(DeviceTest, SyncCopyH2DSliceToArrayRef) {
   EXPECT_NO_ERROR(
       Device.synchronousCopyH2D(ArrayRef<int>(Host5), DeviceA5.asSlice()));
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), Host5[I]);
-  }
 
   EXPECT_ERROR(
       Device.synchronousCopyH2D(ArrayRef<int>(Host5), DeviceA7.asSlice()));
@@ -265,9 +250,8 @@ TEST_F(DeviceTest, SyncCopyH2DSliceToArrayRef) {
 
 TEST_F(DeviceTest, SyncCopyH2DSliceToPointer) {
   EXPECT_NO_ERROR(Device.synchronousCopyH2D(Host5, DeviceA5.asSlice(), 5));
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), Host5[I]);
-  }
 
   EXPECT_ERROR(Device.synchronousCopyH2D(Host7, DeviceA5.asSlice(), 7));
 }
@@ -276,14 +260,12 @@ TEST_F(DeviceTest, SyncCopyH2DSliceToPointer) {
 
 TEST_F(DeviceTest, SyncCopyD2DByCount) {
   EXPECT_NO_ERROR(Device.synchronousCopyD2D(DeviceA5, DeviceB5, 5));
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), getDeviceValue(DeviceB5, I));
-  }
 
   EXPECT_NO_ERROR(Device.synchronousCopyD2D(DeviceA7, DeviceB7, 2));
-  for (int I = 0; I < 2; ++I) {
+  for (int I = 0; I < 2; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA7, I), getDeviceValue(DeviceB7, I));
-  }
 
   EXPECT_ERROR(Device.synchronousCopyD2D(DeviceA5, DeviceB5, 7));
 
@@ -294,9 +276,8 @@ TEST_F(DeviceTest, SyncCopyD2DByCount) {
 
 TEST_F(DeviceTest, SyncCopyD2D) {
   EXPECT_NO_ERROR(Device.synchronousCopyD2D(DeviceA5, DeviceB5));
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), getDeviceValue(DeviceB5, I));
-  }
 
   EXPECT_ERROR(Device.synchronousCopyD2D(DeviceA7, DeviceB5));
 
@@ -306,15 +287,13 @@ TEST_F(DeviceTest, SyncCopyD2D) {
 TEST_F(DeviceTest, SyncCopySliceD2DByCount) {
   EXPECT_NO_ERROR(
       Device.synchronousCopyD2D(DeviceA5.asSlice().slice(1), DeviceB5, 4));
-  for (int I = 0; I < 4; ++I) {
+  for (int I = 0; I < 4; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I + 1), getDeviceValue(DeviceB5, I));
-  }
 
   EXPECT_NO_ERROR(
       Device.synchronousCopyD2D(DeviceA7.asSlice().drop_back(1), DeviceB7, 2));
-  for (int I = 0; I < 2; ++I) {
+  for (int I = 0; I < 2; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA7, I), getDeviceValue(DeviceB7, I));
-  }
 
   EXPECT_ERROR(Device.synchronousCopyD2D(DeviceA5.asSlice(), DeviceB5, 7));
 
@@ -326,9 +305,8 @@ TEST_F(DeviceTest, SyncCopySliceD2DByCount) {
 TEST_F(DeviceTest, SyncCopySliceD2D) {
   EXPECT_NO_ERROR(
       Device.synchronousCopyD2D(DeviceA7.asSlice().drop_back(2), DeviceB5));
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA7, I), getDeviceValue(DeviceB5, I));
-  }
 
   EXPECT_ERROR(
       Device.synchronousCopyD2D(DeviceA7.asSlice().slice(1), DeviceB5));
@@ -340,15 +318,13 @@ TEST_F(DeviceTest, SyncCopySliceD2D) {
 TEST_F(DeviceTest, SyncCopyD2DSliceByCount) {
   EXPECT_NO_ERROR(
       Device.synchronousCopyD2D(DeviceA5, DeviceB7.asSlice().slice(2), 5));
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), getDeviceValue(DeviceB7, I + 2));
-  }
 
   EXPECT_NO_ERROR(
       Device.synchronousCopyD2D(DeviceA7, DeviceB7.asSlice().drop_back(3), 2));
-  for (int I = 0; I < 2; ++I) {
+  for (int I = 0; I < 2; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA7, I), getDeviceValue(DeviceB7, I));
-  }
 
   EXPECT_ERROR(Device.synchronousCopyD2D(DeviceA5, DeviceB5.asSlice(), 7));
 
@@ -360,9 +336,8 @@ TEST_F(DeviceTest, SyncCopyD2DSliceByCount) {
 TEST_F(DeviceTest, SyncCopyD2DSlice) {
   EXPECT_NO_ERROR(
       Device.synchronousCopyD2D(DeviceA5, DeviceB7.asSlice().drop_back(2)));
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), getDeviceValue(DeviceB7, I));
-  }
 
   EXPECT_ERROR(Device.synchronousCopyD2D(DeviceA7, DeviceB5.asSlice()));
 
@@ -372,15 +347,13 @@ TEST_F(DeviceTest, SyncCopyD2DSlice) {
 TEST_F(DeviceTest, SyncCopySliceD2DSliceByCount) {
   EXPECT_NO_ERROR(
       Device.synchronousCopyD2D(DeviceA5.asSlice(), DeviceB5.asSlice(), 5));
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), getDeviceValue(DeviceB5, I));
-  }
 
   EXPECT_NO_ERROR(
       Device.synchronousCopyD2D(DeviceA7.asSlice(), DeviceB7.asSlice(), 2));
-  for (int I = 0; I < 2; ++I) {
+  for (int I = 0; I < 2; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA7, I), getDeviceValue(DeviceB7, I));
-  }
 
   EXPECT_ERROR(
       Device.synchronousCopyD2D(DeviceA5.asSlice(), DeviceB5.asSlice(), 7));
@@ -395,9 +368,8 @@ TEST_F(DeviceTest, SyncCopySliceD2DSliceByCount) {
 TEST_F(DeviceTest, SyncCopySliceD2DSlice) {
   EXPECT_NO_ERROR(
       Device.synchronousCopyD2D(DeviceA5.asSlice(), DeviceB5.asSlice()));
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), getDeviceValue(DeviceB5, I));
-  }
 
   EXPECT_ERROR(
       Device.synchronousCopyD2D(DeviceA7.asSlice(), DeviceB5.asSlice()));
index dd6d0e1c6556c411560de557a4c648ae4b3e72e4..dd8521668af93007b31ed23e4f949ad4b7f6b878 100644 (file)
 ///
 //===----------------------------------------------------------------------===//
 
-#include "SimpleHostPlatformDevice.h"
 #include "streamexecutor/Device.h"
 #include "streamexecutor/DeviceMemory.h"
 #include "streamexecutor/PackedKernelArgumentArray.h"
 #include "streamexecutor/PlatformDevice.h"
+#include "streamexecutor/unittests/CoreTests/SimpleHostPlatformDevice.h"
 
 #include "llvm/ADT/Twine.h"
 
diff --git a/parallel-libs/streamexecutor/unittests/CoreTests/SimpleHostPlatformDevice.h b/parallel-libs/streamexecutor/unittests/CoreTests/SimpleHostPlatformDevice.h
deleted file mode 100644 (file)
index 6006480..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-//===-- SimpleHostPlatformDevice.h - Host device for testing ----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-///
-/// \file
-/// The SimpleHostPlatformDevice class is a streamexecutor::PlatformDevice that
-/// is really just the host processor and memory. It is useful for testing
-/// because no extra device platform is required.
-///
-//===----------------------------------------------------------------------===//
-
-#ifndef STREAMEXECUTOR_LIB_UNITTESTS_SIMPLEHOSTPLATFORMDEVICE_H
-#define STREAMEXECUTOR_LIB_UNITTESTS_SIMPLEHOSTPLATFORMDEVICE_H
-
-#include <cstdlib>
-#include <cstring>
-
-#include "streamexecutor/PlatformDevice.h"
-
-namespace streamexecutor {
-namespace test {
-
-/// A streamexecutor::PlatformDevice that simply forwards all operations to the
-/// host platform.
-///
-/// The allocate and copy methods are simple wrappers for std::malloc and
-/// std::memcpy.
-class SimpleHostPlatformDevice : public streamexecutor::PlatformDevice {
-public:
-  std::string getName() const override { return "SimpleHostPlatformDevice"; }
-
-  streamexecutor::Expected<const void *> createStream() override {
-    return nullptr;
-  }
-
-  streamexecutor::Expected<void *>
-  allocateDeviceMemory(size_t ByteCount) override {
-    return std::malloc(ByteCount);
-  }
-
-  streamexecutor::Error freeDeviceMemory(const void *Handle) override {
-    std::free(const_cast<void *>(Handle));
-    return streamexecutor::Error::success();
-  }
-
-  streamexecutor::Error registerHostMemory(void *Memory,
-                                           size_t ByteCount) override {
-    return streamexecutor::Error::success();
-  }
-
-  streamexecutor::Error unregisterHostMemory(const void *Memory) override {
-    return streamexecutor::Error::success();
-  }
-
-  streamexecutor::Error copyD2H(const void *StreamHandle,
-                                const void *DeviceHandleSrc,
-                                size_t SrcByteOffset, void *HostDst,
-                                size_t DstByteOffset,
-                                size_t ByteCount) override {
-    std::memcpy(static_cast<char *>(HostDst) + DstByteOffset,
-                static_cast<const char *>(DeviceHandleSrc) + SrcByteOffset,
-                ByteCount);
-    return streamexecutor::Error::success();
-  }
-
-  streamexecutor::Error copyH2D(const void *StreamHandle, const void *HostSrc,
-                                size_t SrcByteOffset,
-                                const void *DeviceHandleDst,
-                                size_t DstByteOffset,
-                                size_t ByteCount) override {
-    std::memcpy(static_cast<char *>(const_cast<void *>(DeviceHandleDst)) +
-                    DstByteOffset,
-                static_cast<const char *>(HostSrc) + SrcByteOffset, ByteCount);
-    return streamexecutor::Error::success();
-  }
-
-  streamexecutor::Error
-  copyD2D(const void *StreamHandle, const void *DeviceHandleSrc,
-          size_t SrcByteOffset, const void *DeviceHandleDst,
-          size_t DstByteOffset, size_t ByteCount) override {
-    std::memcpy(static_cast<char *>(const_cast<void *>(DeviceHandleDst)) +
-                    DstByteOffset,
-                static_cast<const char *>(DeviceHandleSrc) + SrcByteOffset,
-                ByteCount);
-    return streamexecutor::Error::success();
-  }
-
-  streamexecutor::Error synchronousCopyD2H(const void *DeviceHandleSrc,
-                                           size_t SrcByteOffset, void *HostDst,
-                                           size_t DstByteOffset,
-                                           size_t ByteCount) override {
-    std::memcpy(static_cast<char *>(HostDst) + DstByteOffset,
-                static_cast<const char *>(DeviceHandleSrc) + SrcByteOffset,
-                ByteCount);
-    return streamexecutor::Error::success();
-  }
-
-  streamexecutor::Error synchronousCopyH2D(const void *HostSrc,
-                                           size_t SrcByteOffset,
-                                           const void *DeviceHandleDst,
-                                           size_t DstByteOffset,
-                                           size_t ByteCount) override {
-    std::memcpy(static_cast<char *>(const_cast<void *>(DeviceHandleDst)) +
-                    DstByteOffset,
-                static_cast<const char *>(HostSrc) + SrcByteOffset, ByteCount);
-    return streamexecutor::Error::success();
-  }
-
-  streamexecutor::Error synchronousCopyD2D(const void *DeviceHandleSrc,
-                                           size_t SrcByteOffset,
-                                           const void *DeviceHandleDst,
-                                           size_t DstByteOffset,
-                                           size_t ByteCount) override {
-    std::memcpy(static_cast<char *>(const_cast<void *>(DeviceHandleDst)) +
-                    DstByteOffset,
-                static_cast<const char *>(DeviceHandleSrc) + SrcByteOffset,
-                ByteCount);
-    return streamexecutor::Error::success();
-  }
-
-  /// Gets the value at the given index from a GlobalDeviceMemory<T> instance
-  /// created by this class.
-  template <typename T>
-  static T getDeviceValue(const streamexecutor::GlobalDeviceMemory<T> &Memory,
-                          size_t Index) {
-    return static_cast<const T *>(Memory.getHandle())[Index];
-  }
-};
-
-} // namespace test
-} // namespace streamexecutor
-
-#endif // STREAMEXECUTOR_LIB_UNITTESTS_SIMPLEHOSTPLATFORMDEVICE_H
index f353ec28c90ac47c66d4ef6043459ea8414e7d49..9d3060539005551c5ec8367efebb66c0e4194b53 100644 (file)
 
 #include <cstring>
 
-#include "SimpleHostPlatformDevice.h"
 #include "streamexecutor/Device.h"
 #include "streamexecutor/Kernel.h"
 #include "streamexecutor/KernelSpec.h"
 #include "streamexecutor/PlatformDevice.h"
 #include "streamexecutor/Stream.h"
+#include "streamexecutor/unittests/CoreTests/SimpleHostPlatformDevice.h"
 
 #include "gtest/gtest.h"
 
@@ -80,23 +80,18 @@ protected:
   se::GlobalDeviceMemory<int> DeviceB7;
 };
 
-using llvm::ArrayRef;
-using llvm::MutableArrayRef;
-
 // D2H tests
 
 TEST_F(StreamTest, CopyD2HToRegisteredRefByCount) {
   Stream.thenCopyD2H(DeviceA5, RegisteredHost5, 5);
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(HostA5[I], Host5[I]);
-  }
 
   Stream.thenCopyD2H(DeviceB5, RegisteredHost5, 2);
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 2; ++I) {
+  for (int I = 0; I < 2; ++I)
     EXPECT_EQ(HostB5[I], Host5[I]);
-  }
 
   Stream.thenCopyD2H(DeviceA7, RegisteredHost5, 7);
   EXPECT_FALSE(Stream.isOK());
@@ -105,9 +100,8 @@ TEST_F(StreamTest, CopyD2HToRegisteredRefByCount) {
 TEST_F(StreamTest, CopyD2HToRegistered) {
   Stream.thenCopyD2H(DeviceA5, RegisteredHost5);
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(HostA5[I], Host5[I]);
-  }
 
   Stream.thenCopyD2H(DeviceA5, RegisteredHost7);
   EXPECT_FALSE(Stream.isOK());
@@ -117,15 +111,13 @@ TEST_F(StreamTest, CopyD2HSliceToRegiseredSliceByCount) {
   Stream.thenCopyD2H(DeviceA5.asSlice().slice(1),
                      RegisteredHost5.asSlice().slice(1, 4), 4);
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 1; I < 5; ++I) {
+  for (int I = 1; I < 5; ++I)
     EXPECT_EQ(HostA5[I], Host5[I]);
-  }
 
   Stream.thenCopyD2H(DeviceB5.asSlice().drop_back(1), RegisteredHost5, 2);
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 2; ++I) {
+  for (int I = 0; I < 2; ++I)
     EXPECT_EQ(HostB5[I], Host5[I]);
-  }
 
   Stream.thenCopyD2H(DeviceA5.asSlice(), RegisteredHost7, 7);
   EXPECT_FALSE(Stream.isOK());
@@ -134,9 +126,8 @@ TEST_F(StreamTest, CopyD2HSliceToRegiseredSliceByCount) {
 TEST_F(StreamTest, CopyD2HSliceToRegistered) {
   Stream.thenCopyD2H(DeviceA7.asSlice().slice(1, 5), RegisteredHost5);
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(HostA7[I + 1], Host5[I]);
-  }
 
   Stream.thenCopyD2H(DeviceA5.asSlice(), RegisteredHost7);
   EXPECT_FALSE(Stream.isOK());
@@ -147,15 +138,13 @@ TEST_F(StreamTest, CopyD2HSliceToRegistered) {
 TEST_F(StreamTest, CopyH2DFromRegisterdByCount) {
   Stream.thenCopyH2D(RegisteredHost5, DeviceA5, 5);
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), Host5[I]);
-  }
 
   Stream.thenCopyH2D(RegisteredHost5, DeviceB5, 2);
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 2; ++I) {
+  for (int I = 0; I < 2; ++I)
     EXPECT_EQ(getDeviceValue(DeviceB5, I), Host5[I]);
-  }
 
   Stream.thenCopyH2D(RegisteredHost7, DeviceA5, 7);
   EXPECT_FALSE(Stream.isOK());
@@ -164,9 +153,8 @@ TEST_F(StreamTest, CopyH2DFromRegisterdByCount) {
 TEST_F(StreamTest, CopyH2DFromRegistered) {
   Stream.thenCopyH2D(RegisteredHost5, DeviceA5);
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), Host5[I]);
-  }
 
   Stream.thenCopyH2D(RegisteredHost7, DeviceA5);
   EXPECT_FALSE(Stream.isOK());
@@ -176,15 +164,13 @@ TEST_F(StreamTest, CopyH2DFromRegisteredSliceToSlice) {
   Stream.thenCopyH2D(RegisteredHost5.asSlice().slice(1, 4),
                      DeviceA5.asSlice().slice(1), 4);
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 1; I < 5; ++I) {
+  for (int I = 1; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), Host5[I]);
-  }
 
   Stream.thenCopyH2D(RegisteredHost5, DeviceB5.asSlice().drop_back(1), 2);
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 2; ++I) {
+  for (int I = 0; I < 2; ++I)
     EXPECT_EQ(getDeviceValue(DeviceB5, I), Host5[I]);
-  }
 
   Stream.thenCopyH2D(RegisteredHost5, DeviceA5.asSlice(), 7);
   EXPECT_FALSE(Stream.isOK());
@@ -193,9 +179,8 @@ TEST_F(StreamTest, CopyH2DFromRegisteredSliceToSlice) {
 TEST_F(StreamTest, CopyH2DRegisteredToSlice) {
   Stream.thenCopyH2D(RegisteredHost5, DeviceA5.asSlice());
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), Host5[I]);
-  }
 
   Stream.thenCopyH2D(RegisteredHost7, DeviceA5.asSlice());
   EXPECT_FALSE(Stream.isOK());
@@ -206,15 +191,13 @@ TEST_F(StreamTest, CopyH2DRegisteredToSlice) {
 TEST_F(StreamTest, CopyD2DByCount) {
   Stream.thenCopyD2D(DeviceA5, DeviceB5, 5);
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), getDeviceValue(DeviceB5, I));
-  }
 
   Stream.thenCopyD2D(DeviceA7, DeviceB7, 2);
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 2; ++I) {
+  for (int I = 0; I < 2; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA7, I), getDeviceValue(DeviceB7, I));
-  }
 
   Stream.thenCopyD2D(DeviceA7, DeviceB5, 7);
   EXPECT_FALSE(Stream.isOK());
@@ -223,9 +206,8 @@ TEST_F(StreamTest, CopyD2DByCount) {
 TEST_F(StreamTest, CopyD2D) {
   Stream.thenCopyD2D(DeviceA5, DeviceB5);
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), getDeviceValue(DeviceB5, I));
-  }
 
   Stream.thenCopyD2D(DeviceA7, DeviceB5);
   EXPECT_FALSE(Stream.isOK());
@@ -234,15 +216,13 @@ TEST_F(StreamTest, CopyD2D) {
 TEST_F(StreamTest, CopySliceD2DByCount) {
   Stream.thenCopyD2D(DeviceA5.asSlice().slice(1), DeviceB5, 4);
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 4; ++I) {
+  for (int I = 0; I < 4; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I + 1), getDeviceValue(DeviceB5, I));
-  }
 
   Stream.thenCopyD2D(DeviceA7.asSlice().drop_back(1), DeviceB7, 2);
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 2; ++I) {
+  for (int I = 0; I < 2; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA7, I), getDeviceValue(DeviceB7, I));
-  }
 
   Stream.thenCopyD2D(DeviceA5.asSlice(), DeviceB5, 7);
   EXPECT_FALSE(Stream.isOK());
@@ -251,9 +231,8 @@ TEST_F(StreamTest, CopySliceD2DByCount) {
 TEST_F(StreamTest, CopySliceD2D) {
   Stream.thenCopyD2D(DeviceA7.asSlice().drop_back(2), DeviceB5);
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA7, I), getDeviceValue(DeviceB5, I));
-  }
 
   Stream.thenCopyD2D(DeviceA5.asSlice().drop_back(1), DeviceB7);
   EXPECT_FALSE(Stream.isOK());
@@ -262,15 +241,13 @@ TEST_F(StreamTest, CopySliceD2D) {
 TEST_F(StreamTest, CopyD2DSliceByCount) {
   Stream.thenCopyD2D(DeviceA5, DeviceB7.asSlice().slice(2), 5);
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), getDeviceValue(DeviceB7, I + 2));
-  }
 
   Stream.thenCopyD2D(DeviceA7, DeviceB7.asSlice().drop_back(3), 2);
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 2; ++I) {
+  for (int I = 0; I < 2; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA7, I), getDeviceValue(DeviceB7, I));
-  }
 
   Stream.thenCopyD2D(DeviceA5, DeviceB7.asSlice(), 7);
   EXPECT_FALSE(Stream.isOK());
@@ -279,9 +256,8 @@ TEST_F(StreamTest, CopyD2DSliceByCount) {
 TEST_F(StreamTest, CopyD2DSlice) {
   Stream.thenCopyD2D(DeviceA5, DeviceB7.asSlice().drop_back(2));
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), getDeviceValue(DeviceB7, I));
-  }
 
   Stream.thenCopyD2D(DeviceA5, DeviceB7.asSlice());
   EXPECT_FALSE(Stream.isOK());
@@ -290,15 +266,13 @@ TEST_F(StreamTest, CopyD2DSlice) {
 TEST_F(StreamTest, CopySliceD2DSliceByCount) {
   Stream.thenCopyD2D(DeviceA5.asSlice(), DeviceB5.asSlice(), 5);
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), getDeviceValue(DeviceB5, I));
-  }
 
   Stream.thenCopyD2D(DeviceA7.asSlice(), DeviceB7.asSlice(), 2);
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 2; ++I) {
+  for (int I = 0; I < 2; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA7, I), getDeviceValue(DeviceB7, I));
-  }
 
   Stream.thenCopyD2D(DeviceA7.asSlice(), DeviceB5.asSlice(), 7);
   EXPECT_FALSE(Stream.isOK());
@@ -307,9 +281,8 @@ TEST_F(StreamTest, CopySliceD2DSliceByCount) {
 TEST_F(StreamTest, CopySliceD2DSlice) {
   Stream.thenCopyD2D(DeviceA5.asSlice(), DeviceB5.asSlice());
   EXPECT_TRUE(Stream.isOK());
-  for (int I = 0; I < 5; ++I) {
+  for (int I = 0; I < 5; ++I)
     EXPECT_EQ(getDeviceValue(DeviceA5, I), getDeviceValue(DeviceB5, I));
-  }
 
   Stream.thenCopyD2D(DeviceA5.asSlice(), DeviceB7.asSlice());
   EXPECT_FALSE(Stream.isOK());