diff options
author | Pavel Labath <labath@google.com> | 2016-10-19 13:58:55 +0000 |
---|---|---|
committer | Pavel Labath <labath@google.com> | 2016-10-19 13:58:55 +0000 |
commit | 13b6a10e7b01f57089e38b081de7de60e8eb22d2 (patch) | |
tree | 94be6ebbc2a4150315e2a675447add1705b5c087 /llvm/lib/Support/TimeValue.cpp | |
parent | 089a39e859b2917ad38872f3ffa2360060222790 (diff) | |
download | bcm5719-llvm-13b6a10e7b01f57089e38b081de7de60e8eb22d2.tar.gz bcm5719-llvm-13b6a10e7b01f57089e38b081de7de60e8eb22d2.zip |
Add Chrono.h - std::chrono support header
Summary:
std::chrono mostly covers the functionality of llvm::sys::TimeValue and
lldb_private::TimeValue. This header adds a bit of utility functions and
typedefs, which make the usage of the library and porting code from TimeValues
easier.
Rationale:
- TimePoint typedef - precision of system_clock is implementation defined -
using a well-defined precision helps maintain consistency between platforms,
makes it interact better with existing TimeValue classes, and avoids cases
there a time point is implicitly convertible to a specific precision on some
platforms but not on others.
- system_clock::to_time_t only accepts time_points with the default system
precision (even though time_t has only second precision on all platforms we
support). To avoid the need for explicit casts, I have added a toTimeT()
wrapper function. toTimePoint(time_t) was not strictly necessary, but I have
added it for symmetry.
Reviewers: zturner, mehdi_amini
Subscribers: beanz, mgorny, llvm-commits, modocache
Differential Revision: https://reviews.llvm.org/D25416
llvm-svn: 284590
Diffstat (limited to 'llvm/lib/Support/TimeValue.cpp')
-rw-r--r-- | llvm/lib/Support/TimeValue.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/llvm/lib/Support/TimeValue.cpp b/llvm/lib/Support/TimeValue.cpp index 94a4c011693..18c84ca9fa0 100644 --- a/llvm/lib/Support/TimeValue.cpp +++ b/llvm/lib/Support/TimeValue.cpp @@ -12,7 +12,8 @@ //===----------------------------------------------------------------------===// #include "llvm/Support/TimeValue.h" -#include "llvm/Config/config.h" +#include "llvm/Support/Chrono.h" +#include "llvm/Support/ScopedPrinter.h" namespace llvm { @@ -45,12 +46,10 @@ void TimeValue::normalize() { } } -} // namespace llvm +std::string TimeValue::str() const { return to_string(TimePoint<>(*this)); } + +TimeValue TimeValue::now() { + return TimePoint<>(std::chrono::system_clock::now()); +} -/// Include the platform-specific portion of TimeValue class -#ifdef LLVM_ON_UNIX -#include "Unix/TimeValue.inc" -#endif -#ifdef LLVM_ON_WIN32 -#include "Windows/TimeValue.inc" -#endif +} // namespace llvm |