[Parallel_libs-commits] [parallel-libs] r281118 - [SE] Remove Utils directory
Jason Henline via Parallel_libs-commits
parallel_libs-commits at lists.llvm.org
Fri Sep 9 16:33:58 PDT 2016
Author: jhen
Date: Fri Sep 9 18:33:58 2016
New Revision: 281118
URL: http://llvm.org/viewvc/llvm-project?rev=281118&view=rev
Log:
[SE] Remove Utils directory
Summary:
There is no purpose in splitting out the Error class from the rest of
the StreamExecutor code. This organization was just a vestige of an old
failed design.
Plus, this change fixes a bug in the build where the utilites library
was not being statically linked in with libstreamexecutor.
Reviewers: jlebar, jprice
Subscribers: beanz, parallel_libs-commits
Differential Revision: https://reviews.llvm.org/D24434
Added:
parallel-libs/trunk/streamexecutor/include/streamexecutor/Error.h
- copied, changed from r281091, parallel-libs/trunk/streamexecutor/include/streamexecutor/Utils/Error.h
parallel-libs/trunk/streamexecutor/lib/Error.cpp
- copied, changed from r281091, parallel-libs/trunk/streamexecutor/lib/Utils/Error.cpp
Removed:
parallel-libs/trunk/streamexecutor/include/streamexecutor/Utils/Error.h
parallel-libs/trunk/streamexecutor/lib/Utils/CMakeLists.txt
parallel-libs/trunk/streamexecutor/lib/Utils/Error.cpp
Modified:
parallel-libs/trunk/streamexecutor/include/streamexecutor/Device.h
parallel-libs/trunk/streamexecutor/include/streamexecutor/DeviceMemory.h
parallel-libs/trunk/streamexecutor/include/streamexecutor/Kernel.h
parallel-libs/trunk/streamexecutor/include/streamexecutor/Platform.h
parallel-libs/trunk/streamexecutor/include/streamexecutor/PlatformDevice.h
parallel-libs/trunk/streamexecutor/include/streamexecutor/PlatformManager.h
parallel-libs/trunk/streamexecutor/include/streamexecutor/Stream.h
parallel-libs/trunk/streamexecutor/lib/CMakeLists.txt
Modified: parallel-libs/trunk/streamexecutor/include/streamexecutor/Device.h
URL: http://llvm.org/viewvc/llvm-project/parallel-libs/trunk/streamexecutor/include/streamexecutor/Device.h?rev=281118&r1=281117&r2=281118&view=diff
==============================================================================
--- parallel-libs/trunk/streamexecutor/include/streamexecutor/Device.h (original)
+++ parallel-libs/trunk/streamexecutor/include/streamexecutor/Device.h Fri Sep 9 18:33:58 2016
@@ -17,9 +17,9 @@
#include <type_traits>
+#include "streamexecutor/Error.h"
#include "streamexecutor/KernelSpec.h"
#include "streamexecutor/PlatformDevice.h"
-#include "streamexecutor/Utils/Error.h"
namespace streamexecutor {
Modified: parallel-libs/trunk/streamexecutor/include/streamexecutor/DeviceMemory.h
URL: http://llvm.org/viewvc/llvm-project/parallel-libs/trunk/streamexecutor/include/streamexecutor/DeviceMemory.h?rev=281118&r1=281117&r2=281118&view=diff
==============================================================================
--- parallel-libs/trunk/streamexecutor/include/streamexecutor/DeviceMemory.h (original)
+++ parallel-libs/trunk/streamexecutor/include/streamexecutor/DeviceMemory.h Fri Sep 9 18:33:58 2016
@@ -32,7 +32,7 @@
#include <cassert>
#include <cstddef>
-#include "streamexecutor/Utils/Error.h"
+#include "streamexecutor/Error.h"
namespace streamexecutor {
Copied: parallel-libs/trunk/streamexecutor/include/streamexecutor/Error.h (from r281091, parallel-libs/trunk/streamexecutor/include/streamexecutor/Utils/Error.h)
URL: http://llvm.org/viewvc/llvm-project/parallel-libs/trunk/streamexecutor/include/streamexecutor/Error.h?p2=parallel-libs/trunk/streamexecutor/include/streamexecutor/Error.h&p1=parallel-libs/trunk/streamexecutor/include/streamexecutor/Utils/Error.h&r1=281091&r2=281118&rev=281118&view=diff
==============================================================================
--- parallel-libs/trunk/streamexecutor/include/streamexecutor/Utils/Error.h (original)
+++ parallel-libs/trunk/streamexecutor/include/streamexecutor/Error.h Fri Sep 9 18:33:58 2016
@@ -160,8 +160,8 @@
///
//===----------------------------------------------------------------------===//
-#ifndef STREAMEXECUTOR_UTILS_ERROR_H
-#define STREAMEXECUTOR_UTILS_ERROR_H
+#ifndef STREAMEXECUTOR_ERROR_H
+#define STREAMEXECUTOR_ERROR_H
#include <cstdio>
#include <cstdlib>
@@ -212,4 +212,4 @@ void dieIfError(Error &&E);
} // namespace streamexecutor
-#endif // STREAMEXECUTOR_UTILS_ERROR_H
+#endif // STREAMEXECUTOR_ERROR_H
Modified: parallel-libs/trunk/streamexecutor/include/streamexecutor/Kernel.h
URL: http://llvm.org/viewvc/llvm-project/parallel-libs/trunk/streamexecutor/include/streamexecutor/Kernel.h?rev=281118&r1=281117&r2=281118&view=diff
==============================================================================
--- parallel-libs/trunk/streamexecutor/include/streamexecutor/Kernel.h (original)
+++ parallel-libs/trunk/streamexecutor/include/streamexecutor/Kernel.h Fri Sep 9 18:33:58 2016
@@ -21,8 +21,8 @@
#ifndef STREAMEXECUTOR_KERNEL_H
#define STREAMEXECUTOR_KERNEL_H
+#include "streamexecutor/Error.h"
#include "streamexecutor/KernelSpec.h"
-#include "streamexecutor/Utils/Error.h"
#include <memory>
Modified: parallel-libs/trunk/streamexecutor/include/streamexecutor/Platform.h
URL: http://llvm.org/viewvc/llvm-project/parallel-libs/trunk/streamexecutor/include/streamexecutor/Platform.h?rev=281118&r1=281117&r2=281118&view=diff
==============================================================================
--- parallel-libs/trunk/streamexecutor/include/streamexecutor/Platform.h (original)
+++ parallel-libs/trunk/streamexecutor/include/streamexecutor/Platform.h Fri Sep 9 18:33:58 2016
@@ -18,7 +18,7 @@
#ifndef STREAMEXECUTOR_PLATFORM_H
#define STREAMEXECUTOR_PLATFORM_H
-#include "streamexecutor/Utils/Error.h"
+#include "streamexecutor/Error.h"
namespace streamexecutor {
Modified: parallel-libs/trunk/streamexecutor/include/streamexecutor/PlatformDevice.h
URL: http://llvm.org/viewvc/llvm-project/parallel-libs/trunk/streamexecutor/include/streamexecutor/PlatformDevice.h?rev=281118&r1=281117&r2=281118&view=diff
==============================================================================
--- parallel-libs/trunk/streamexecutor/include/streamexecutor/PlatformDevice.h (original)
+++ parallel-libs/trunk/streamexecutor/include/streamexecutor/PlatformDevice.h Fri Sep 9 18:33:58 2016
@@ -20,10 +20,10 @@
#define STREAMEXECUTOR_PLATFORMDEVICE_H
#include "streamexecutor/DeviceMemory.h"
+#include "streamexecutor/Error.h"
#include "streamexecutor/Kernel.h"
#include "streamexecutor/LaunchDimensions.h"
#include "streamexecutor/PackedKernelArgumentArray.h"
-#include "streamexecutor/Utils/Error.h"
namespace streamexecutor {
Modified: parallel-libs/trunk/streamexecutor/include/streamexecutor/PlatformManager.h
URL: http://llvm.org/viewvc/llvm-project/parallel-libs/trunk/streamexecutor/include/streamexecutor/PlatformManager.h?rev=281118&r1=281117&r2=281118&view=diff
==============================================================================
--- parallel-libs/trunk/streamexecutor/include/streamexecutor/PlatformManager.h (original)
+++ parallel-libs/trunk/streamexecutor/include/streamexecutor/PlatformManager.h Fri Sep 9 18:33:58 2016
@@ -21,8 +21,8 @@
#include <map>
+#include "streamexecutor/Error.h"
#include "streamexecutor/Platform.h"
-#include "streamexecutor/Utils/Error.h"
namespace streamexecutor {
Modified: parallel-libs/trunk/streamexecutor/include/streamexecutor/Stream.h
URL: http://llvm.org/viewvc/llvm-project/parallel-libs/trunk/streamexecutor/include/streamexecutor/Stream.h?rev=281118&r1=281117&r2=281118&view=diff
==============================================================================
--- parallel-libs/trunk/streamexecutor/include/streamexecutor/Stream.h (original)
+++ parallel-libs/trunk/streamexecutor/include/streamexecutor/Stream.h Fri Sep 9 18:33:58 2016
@@ -35,11 +35,11 @@
#include <string>
#include "streamexecutor/DeviceMemory.h"
+#include "streamexecutor/Error.h"
#include "streamexecutor/Kernel.h"
#include "streamexecutor/LaunchDimensions.h"
#include "streamexecutor/PackedKernelArgumentArray.h"
#include "streamexecutor/PlatformDevice.h"
-#include "streamexecutor/Utils/Error.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/Twine.h"
Removed: parallel-libs/trunk/streamexecutor/include/streamexecutor/Utils/Error.h
URL: http://llvm.org/viewvc/llvm-project/parallel-libs/trunk/streamexecutor/include/streamexecutor/Utils/Error.h?rev=281117&view=auto
==============================================================================
--- parallel-libs/trunk/streamexecutor/include/streamexecutor/Utils/Error.h (original)
+++ parallel-libs/trunk/streamexecutor/include/streamexecutor/Utils/Error.h (removed)
@@ -1,215 +0,0 @@
-//===-- Error.h - Error handling --------------------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-///
-/// \file
-/// Error types used in the public API and internally in StreamExecutor.
-///
-/// StreamExecutor's error handling is based on the types streamexecutor::Error
-/// and streamexecutor::Expected<T>.
-///
-///
-/// \section error The Error Class
-///
-/// The Error class either represents success or contains an error message
-/// describing the cause of the error. Error instances are created by calling
-/// Error::success for successes or make_error for errors.
-///
-/// \code{.cpp}
-/// Error achieveWorldPeace() {
-/// if (WorldPeaceAlreadyAchieved) {
-/// return Error::success();
-/// } else {
-/// return make_error("Can't someone else do it?");
-/// }
-/// }
-/// \endcode
-///
-/// Error instances are implicitly convertible to bool. Error values convert to
-/// true and successes convert to false. Error instances must have their boolean
-/// values checked or they must be moved before they go out of scope, otherwise
-/// their destruction will cause the program to abort with a warning about an
-/// unchecked Error.
-///
-/// If the Error represents success, then checking the boolean value is all that
-/// is required, but if the Error represents a real error, the Error value must
-/// be consumed. The function consumeAndGetMessage is the way to extract the
-/// error message from an Error and consume the Error at the same time, so
-/// typical error handling will first check whether there was an error and then
-/// extract the error message if so. Here is an example:
-///
-/// \code{.cpp}
-/// if (Error E = achieveWorldPeace()) {
-/// printf("An error occurred: %s\n", consumeAndGetMessage(E).c_str());
-/// exit(EXIT_FAILURE):
-/// }
-/// \endcode
-///
-/// It is also common to simply pass an error along up the call stack if it
-/// cannot be handled in the current function.
-///
-/// \code{.cpp}
-/// Error doTask() {
-/// if (Error E = achieveWorldPeace()) {
-/// return E;
-/// }
-/// ...
-/// }
-/// \endcode
-///
-/// There is also a function consumeError that consumes an error value without
-/// fetching the error message. This is useful when we want to ignore an error.
-///
-/// The dieIfError function is also provided for quick-and-dirty error handling.
-///
-///
-/// \section expected The Expected Class
-///
-/// The Expected<T> class either represents a value of type T or an Error.
-/// Expected<T> has one constructor that takes a T value and another constructor
-/// that takes an Error rvalue reference, so Expected instances can be
-/// constructed either from values or from errors:
-///
-/// \code{.cpp}
-/// Expected<int> getMyFavoriteInt() {
-/// int MyFavorite = 42;
-/// if (IsThereAFavorite) {
-/// return MyFavorite;
-/// } else {
-/// return make_error("I don't have a favorite");
-/// }
-/// }
-/// \endcode
-///
-/// Expected<T> instances are implicitly convertible to bool and are true if
-/// they contain a value and false if they contain an error. Note that this is
-/// the opposite convention of the Error type conversion to bool, where true
-/// meant error and false meant success.
-///
-/// If the Expected<T> instance is not an error, the stored value can be
-/// obtained by using operator*. If access to members of the value are desired
-/// instead of the value itself, operator-> can be used as well.
-///
-/// Expected<T> instances must have their boolean value checked or they must be
-/// moved before they go out of scope, otherwise they will cause the program to
-/// abort with a warning about an unchecked error. If the Expected<T> instance
-/// contains a value, then checking the boolean value is all that is required,
-/// but if it contains an Error object, that Error object must be handled by
-/// calling Expected<T>::takeError() to get the underlying error.
-///
-/// Here is an example of the use of an Expected<T> value returned from a
-/// function:
-///
-/// \code{.cpp}
-/// Expected<int> ExpectedInt = getMyFavoriteInt();
-/// if (ExpectedInt) {
-/// printf("My favorite integer is %d\n", *ExpectedInt);
-/// } else {
-/// printf("An error occurred: %s\n",
-/// consumeAndGetMessage(ExpectedInt.takeError()));
-/// exit(EXIT_FAILURE);
-/// }
-/// \endcode
-///
-/// The following snippet shows some examples of how Errors and Expected values
-/// can be passed up the stack if they should not be handled in the current
-/// function.
-///
-/// \code{.cpp}
-/// Expected<double> doTask3() {
-/// Error WorldPeaceError = achieveWorldPeace();
-/// if (!WorldPeaceError) {
-/// return WorldPeaceError;
-/// }
-///
-/// Expected<martian> ExpectedMartian = getMyFavoriteMartian();
-/// if (!ExpectedMartian) {
-/// // Must extract the error because martian cannot be converted to double.
-/// return ExpectedMartian.takeError():
-/// }
-///
-/// // It's fine to return Expected<int> for Expected<double> because int can
-/// // be converted to double.
-/// return getMyFavoriteInt();
-/// }
-/// \endcode
-///
-/// The getOrDie function is also available for quick-and-dirty error handling.
-///
-///
-/// \section llvm Relation to llvm::Error and llvm::Expected
-///
-/// The streamexecutor::Error and streamexecutor::Expected classes are actually
-/// just their LLVM counterparts redeclared in the streamexectuor namespace, but
-/// they should be treated as separate types, even so.
-///
-/// StreamExecutor does not support any underlying llvm::ErrorInfo class except
-/// the one it defines internally for itself, so a streamexecutor::Error can be
-/// thought of as a restricted llvm::Error that is guaranteed to hold a specific
-/// error type.
-///
-/// Although code may compile if llvm functions used to handle these
-/// StreamExecutor error types, it is likely that code will lead to runtime
-/// errors, so it is strongly recommended that only the functions from the
-/// streamexecutor namespace are used on these StreamExecutor error types.
-///
-//===----------------------------------------------------------------------===//
-
-#ifndef STREAMEXECUTOR_UTILS_ERROR_H
-#define STREAMEXECUTOR_UTILS_ERROR_H
-
-#include <cstdio>
-#include <cstdlib>
-#include <memory>
-#include <string>
-
-#include "llvm/Support/Error.h"
-
-namespace streamexecutor {
-
-using llvm::consumeError;
-using llvm::Error;
-using llvm::Expected;
-using llvm::Twine;
-
-/// Makes an Error object from an error message.
-Error make_error(Twine Message);
-
-/// Consumes the input error and returns its error message.
-///
-/// Assumes the input was created by the make_error function above.
-std::string consumeAndGetMessage(Error &&E);
-
-/// Extracts the T value from an Expected<T> or prints an error message to
-/// stderr and exits the program with code EXIT_FAILURE if the Expected<T> is an
-/// error.
-///
-/// This function and the dieIfError function are provided for applications that
-/// are OK with aborting the program if an error occurs, and which don't have
-/// any special error logging needs. Applications with different error handling
-/// needs will likely want to declare their own functions with similar
-/// signatures but which log error messages in a different way or attempt to
-/// recover from errors instead of aborting the program.
-template <typename T> T getOrDie(Expected<T> &&E) {
- if (!E) {
- std::fprintf(stderr, "Error extracting an expected value: %s.\n",
- consumeAndGetMessage(E.takeError()).c_str());
- std::exit(EXIT_FAILURE);
- }
- return std::move(*E);
-}
-
-/// Prints an error message to stderr and exits the program with code
-/// EXIT_FAILURE if the input is an error.
-///
-/// \sa getOrDie
-void dieIfError(Error &&E);
-
-} // namespace streamexecutor
-
-#endif // STREAMEXECUTOR_UTILS_ERROR_H
Modified: parallel-libs/trunk/streamexecutor/lib/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/parallel-libs/trunk/streamexecutor/lib/CMakeLists.txt?rev=281118&r1=281117&r2=281118&view=diff
==============================================================================
--- parallel-libs/trunk/streamexecutor/lib/CMakeLists.txt (original)
+++ parallel-libs/trunk/streamexecutor/lib/CMakeLists.txt Fri Sep 9 18:33:58 2016
@@ -3,12 +3,11 @@ macro(add_se_library name)
set_target_properties(${name} PROPERTIES FOLDER "streamexecutor libraries")
endmacro(add_se_library)
-add_subdirectory(Utils)
-
add_se_library(
streamexecutor
Device.cpp
DeviceMemory.cpp
+ Error.cpp
Kernel.cpp
KernelSpec.cpp
PackedKernelArgumentArray.cpp
@@ -16,9 +15,6 @@ add_se_library(
PlatformDevice.cpp
PlatformManager.cpp
Stream.cpp
-
- LINK_LIBS
- utils
)
install(TARGETS streamexecutor DESTINATION lib)
Copied: parallel-libs/trunk/streamexecutor/lib/Error.cpp (from r281091, parallel-libs/trunk/streamexecutor/lib/Utils/Error.cpp)
URL: http://llvm.org/viewvc/llvm-project/parallel-libs/trunk/streamexecutor/lib/Error.cpp?p2=parallel-libs/trunk/streamexecutor/lib/Error.cpp&p1=parallel-libs/trunk/streamexecutor/lib/Utils/Error.cpp&r1=281091&r2=281118&rev=281118&view=diff
==============================================================================
--- parallel-libs/trunk/streamexecutor/lib/Utils/Error.cpp (original)
+++ parallel-libs/trunk/streamexecutor/lib/Error.cpp Fri Sep 9 18:33:58 2016
@@ -12,7 +12,7 @@
///
//===----------------------------------------------------------------------===//
-#include "streamexecutor/Utils/Error.h"
+#include "streamexecutor/Error.h"
#include "llvm/ADT/StringRef.h"
Removed: parallel-libs/trunk/streamexecutor/lib/Utils/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/parallel-libs/trunk/streamexecutor/lib/Utils/CMakeLists.txt?rev=281117&view=auto
==============================================================================
--- parallel-libs/trunk/streamexecutor/lib/Utils/CMakeLists.txt (original)
+++ parallel-libs/trunk/streamexecutor/lib/Utils/CMakeLists.txt (removed)
@@ -1,3 +0,0 @@
-add_se_library(
- utils
- Error.cpp)
Removed: parallel-libs/trunk/streamexecutor/lib/Utils/Error.cpp
URL: http://llvm.org/viewvc/llvm-project/parallel-libs/trunk/streamexecutor/lib/Utils/Error.cpp?rev=281117&view=auto
==============================================================================
--- parallel-libs/trunk/streamexecutor/lib/Utils/Error.cpp (original)
+++ parallel-libs/trunk/streamexecutor/lib/Utils/Error.cpp (removed)
@@ -1,71 +0,0 @@
-//===-- Error.cpp - Error handling ----------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-///
-/// \file
-/// Types for returning recoverable errors.
-///
-//===----------------------------------------------------------------------===//
-
-#include "streamexecutor/Utils/Error.h"
-
-#include "llvm/ADT/StringRef.h"
-
-namespace {
-
-// An error with a string message describing the cause.
-class StreamExecutorError : public llvm::ErrorInfo<StreamExecutorError> {
-public:
- StreamExecutorError(llvm::StringRef Message) : Message(Message.str()) {}
-
- void log(llvm::raw_ostream &OS) const override { OS << Message; }
-
- std::error_code convertToErrorCode() const override {
- llvm_unreachable(
- "StreamExecutorError does not support conversion to std::error_code");
- }
-
- std::string getErrorMessage() const { return Message; }
-
- static char ID;
-
-private:
- std::string Message;
-};
-
-char StreamExecutorError::ID = 0;
-
-} // namespace
-
-namespace streamexecutor {
-
-Error make_error(Twine Message) {
- return llvm::make_error<StreamExecutorError>(Message.str());
-}
-
-std::string consumeAndGetMessage(Error &&E) {
- if (!E) {
- return "success";
- }
- std::string Message;
- llvm::handleAllErrors(std::move(E),
- [&Message](const StreamExecutorError &SEE) {
- Message = SEE.getErrorMessage();
- });
- return Message;
-}
-
-void dieIfError(Error &&E) {
- if (E) {
- std::fprintf(stderr, "Error encountered: %s.\n",
- streamexecutor::consumeAndGetMessage(std::move(E)).c_str());
- std::exit(EXIT_FAILURE);
- }
-}
-
-} // namespace streamexecutor
More information about the Parallel_libs-commits
mailing list