LLVM
3.7.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
work
release_test
rc4
llvm.src
lib
Support
TimeValue.cpp
Go to the documentation of this file.
1
//===-- TimeValue.cpp - Implement OS TimeValue Concept ----------*- C++ -*-===//
2
//
3
// The LLVM Compiler Infrastructure
4
//
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
7
//
8
//===----------------------------------------------------------------------===//
9
//
10
// This file implements the operating system TimeValue concept.
11
//
12
//===----------------------------------------------------------------------===//
13
14
#include "
llvm/Support/TimeValue.h
"
15
#include "llvm/Config/config.h"
16
17
namespace
llvm {
18
using namespace
sys;
19
20
const
TimeValue::SecondsType
21
TimeValue::PosixZeroTimeSeconds = -946684800;
22
const
TimeValue::SecondsType
23
TimeValue::Win32ZeroTimeSeconds = -12591158400ULL;
24
25
void
26
TimeValue::normalize(
void
) {
27
if
( nanos_ >=
NANOSECONDS_PER_SECOND
) {
28
do
{
29
seconds_++;
30
nanos_ -=
NANOSECONDS_PER_SECOND
;
31
}
while
( nanos_ >=
NANOSECONDS_PER_SECOND
);
32
}
else
if
(nanos_ <= -
NANOSECONDS_PER_SECOND
) {
33
do
{
34
seconds_--;
35
nanos_ +=
NANOSECONDS_PER_SECOND
;
36
}
while
(nanos_ <= -
NANOSECONDS_PER_SECOND
);
37
}
38
39
if
(seconds_ >= 1 && nanos_ < 0) {
40
seconds_--;
41
nanos_ +=
NANOSECONDS_PER_SECOND
;
42
}
else
if
(seconds_ < 0 && nanos_ > 0) {
43
seconds_++;
44
nanos_ -=
NANOSECONDS_PER_SECOND
;
45
}
46
}
47
48
}
49
50
/// Include the platform-specific portion of TimeValue class
51
#ifdef LLVM_ON_UNIX
52
#include "
Unix/TimeValue.inc
"
53
#endif
54
#ifdef LLVM_ON_WIN32
55
#include "
Windows/TimeValue.inc
"
56
#endif
llvm::sys::TimeValue::NANOSECONDS_PER_SECOND
One Billion.
Definition:
TimeValue.h:82
llvm::sys::TimeValue::SecondsType
int64_t SecondsType
Type used for representing seconds.
Definition:
TimeValue.h:78
TimeValue.h
TimeValue.inc
TimeValue.inc
Generated on Mon Aug 31 2015 11:11:00 for LLVM by
1.8.6