From 35b0ddab0ee8064d23c6f390e30da14e756b5ba6 Mon Sep 17 00:00:00 2001 From: Diana Picus Date: Mon, 7 Jun 2021 11:48:32 +0000 Subject: [PATCH] [flang] Define the API for CPU_TIME CPU_TIME takes a single real scalar INTENT(OUT) argument. We can therefore return a double and let lowering handle casting that to the precision used for the default real kind. Differential Revision: https://reviews.llvm.org/D103805 --- flang/runtime/time-intrinsic.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 flang/runtime/time-intrinsic.h diff --git a/flang/runtime/time-intrinsic.h b/flang/runtime/time-intrinsic.h new file mode 100644 index 0000000..835f24c --- /dev/null +++ b/flang/runtime/time-intrinsic.h @@ -0,0 +1,27 @@ +//===-- runtime/time-intrinsic.h --------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +// Defines the API between compiled code and the implementations of time-related +// intrinsic subroutines in the runtime library. + +#ifndef FORTRAN_RUNTIME_TIME_INTRINSIC_H_ +#define FORTRAN_RUNTIME_TIME_INTRINSIC_H_ + +#include "cpp-type.h" +#include "entry-names.h" + +namespace Fortran::runtime { +extern "C" { + +// Lowering may need to cast this result to match the precision of the default +// real kind. +double RTNAME(CpuTime)(); + +} // extern "C" +} // namespace Fortran::runtime +#endif // FORTRAN_RUNTIME_TIME_INTRINSIC_H_ -- 2.7.4