diff options
Diffstat (limited to 'lib/Support/TimeValue.cpp')
| -rw-r--r-- | lib/Support/TimeValue.cpp | 57 | 
1 files changed, 57 insertions, 0 deletions
diff --git a/lib/Support/TimeValue.cpp b/lib/Support/TimeValue.cpp new file mode 100644 index 0000000000000..1a0f7bc363949 --- /dev/null +++ b/lib/Support/TimeValue.cpp @@ -0,0 +1,57 @@ +//===-- TimeValue.cpp - Implement OS TimeValue Concept ----------*- C++ -*-===// +// +//                     The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +//  This file implements the operating system TimeValue concept. +// +//===----------------------------------------------------------------------===// + +#include "llvm/Support/TimeValue.h" +#include "llvm/Config/config.h" + +namespace llvm { +using namespace sys; + +const TimeValue TimeValue::MinTime       = TimeValue ( INT64_MIN,0 ); +const TimeValue TimeValue::MaxTime       = TimeValue ( INT64_MAX,0 ); +const TimeValue TimeValue::ZeroTime      = TimeValue ( 0,0 ); +const TimeValue TimeValue::PosixZeroTime = TimeValue ( -946684800,0 ); +const TimeValue TimeValue::Win32ZeroTime = TimeValue ( -12591158400ULL,0 ); + +void +TimeValue::normalize( void ) { +  if ( nanos_ >= NANOSECONDS_PER_SECOND ) { +    do { +      seconds_++; +      nanos_ -= NANOSECONDS_PER_SECOND; +    } while ( nanos_ >= NANOSECONDS_PER_SECOND ); +  } else if (nanos_ <= -NANOSECONDS_PER_SECOND ) { +    do { +      seconds_--; +      nanos_ += NANOSECONDS_PER_SECOND; +    } while (nanos_ <= -NANOSECONDS_PER_SECOND); +  } + +  if (seconds_ >= 1 && nanos_ < 0) { +    seconds_--; +    nanos_ += NANOSECONDS_PER_SECOND; +  } else if (seconds_ < 0 && nanos_ > 0) { +    seconds_++; +    nanos_ -= NANOSECONDS_PER_SECOND; +  } +} + +} + +/// 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  | 
