Warning: This file is not a C or C++ file. It does not have highlighting.
1 | //===-- include/flang/Runtime/time-intrinsic.h ------------------*- C++ -*-===// |
---|---|
2 | // |
3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | // See https://llvm.org/LICENSE.txt for license information. |
5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | // |
7 | //===----------------------------------------------------------------------===// |
8 | |
9 | // Defines the API between compiled code and the implementations of time-related |
10 | // intrinsic subroutines in the runtime library. |
11 | |
12 | #ifndef FORTRAN_RUNTIME_TIME_INTRINSIC_H_ |
13 | #define FORTRAN_RUNTIME_TIME_INTRINSIC_H_ |
14 | |
15 | #include "flang/Runtime/entry-names.h" |
16 | #include <cinttypes> |
17 | #include <cstddef> |
18 | |
19 | namespace Fortran::runtime { |
20 | |
21 | class Descriptor; |
22 | |
23 | extern "C" { |
24 | |
25 | // Lowering may need to cast this result to match the precision of the default |
26 | // real kind. |
27 | double RTNAME(CpuTime)(); |
28 | |
29 | // Interface for the SYSTEM_CLOCK intrinsic. We break it up into 3 distinct |
30 | // function calls, one for each of SYSTEM_CLOCK's optional output arguments. |
31 | // Lowering converts the results to the types of the actual arguments, |
32 | // including the case of a real argument for COUNT_RATE=.. |
33 | // The kind argument to SystemClockCount and SystemClockCountMax is the |
34 | // kind of the integer actual arguments, which are required to be the same |
35 | // when both appear. |
36 | std::int64_t RTNAME(SystemClockCount)(int kind = 8); |
37 | std::int64_t RTNAME(SystemClockCountRate)(int kind = 8); |
38 | std::int64_t RTNAME(SystemClockCountMax)(int kind = 8); |
39 | |
40 | // Interface for DATE_AND_TIME intrinsic. |
41 | void RTNAME(DateAndTime)(char *date, std::size_t dateChars, char *time, |
42 | std::size_t timeChars, char *zone, std::size_t zoneChars, |
43 | const char *source = nullptr, int line = 0, |
44 | const Descriptor *values = nullptr); |
45 | |
46 | } // extern "C" |
47 | } // namespace Fortran::runtime |
48 | #endif // FORTRAN_RUNTIME_TIME_INTRINSIC_H_ |
49 |
Warning: This file is not a C or C++ file. It does not have highlighting.