From b8bac6b33c576dec88add0e6a68e96219e278c8a Mon Sep 17 00:00:00 2001 From: Diana Picus Date: Fri, 11 Jun 2021 08:05:30 +0000 Subject: [PATCH] [flang] Add runtime interface for SYSTEM_CLOCK SYSTEM_CLOCK may take up to 3 optional parameters, all of which are INTENT(OUT). The COUNT and COUNT_MAX parameters are integer scalars, while COUNT_RATE may be a real or integer scalar. This patch breaks up the interface into 3 different functions, one for each parameter. All 3 return integers. It is up to lowering to convert the results to the preferred type. Differential Revision: https://reviews.llvm.org/D104851 --- flang/runtime/time-intrinsic.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/flang/runtime/time-intrinsic.h b/flang/runtime/time-intrinsic.h index 835f24c..391d72c 100644 --- a/flang/runtime/time-intrinsic.h +++ b/flang/runtime/time-intrinsic.h @@ -22,6 +22,12 @@ extern "C" { // real kind. double RTNAME(CpuTime)(); +// Interface for the SYSTEM_CLOCK intrinsic. We break it up into 3 distinct +// function calls, one for each of SYSTEM_CLOCK's optional output arguments. +// Lowering will have to cast the results to whatever type it prefers. +CppTypeFor RTNAME(SystemClockCount)(); +CppTypeFor RTNAME(SystemClockCountRate)(); +CppTypeFor RTNAME(SystemClockCountMax)(); } // extern "C" } // namespace Fortran::runtime #endif // FORTRAN_RUNTIME_TIME_INTRINSIC_H_ -- 2.7.4