[all-commits] [llvm/llvm-project] 50d848: [flang] Added lowering and runtime for COMPLEX(16)...

Slava Zakharin via All-commits all-commits at lists.llvm.org
Tue Mar 5 13:36:59 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 50d848d0761e052e203136f3de9a332bd619595a
      https://github.com/llvm/llvm-project/commit/50d848d0761e052e203136f3de9a332bd619595a
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2024-03-05 (Tue, 05 Mar 2024)

  Changed paths:
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/runtime/CMakeLists.txt
    M flang/runtime/Float128Math/CMakeLists.txt
    R flang/runtime/Float128Math/cabs.cpp
    A flang/runtime/Float128Math/complex-math.c
    A flang/runtime/Float128Math/complex-math.h
    M flang/runtime/Float128Math/exponent.cpp
    M flang/runtime/Float128Math/fraction.cpp
    M flang/runtime/Float128Math/math-entries.h
    M flang/runtime/Float128Math/mod-real.cpp
    M flang/runtime/Float128Math/modulo-real.cpp
    M flang/runtime/Float128Math/nearest.cpp
    M flang/runtime/Float128Math/rrspacing.cpp
    M flang/runtime/Float128Math/scale.cpp
    M flang/runtime/Float128Math/set-exponent.cpp
    M flang/runtime/Float128Math/spacing.cpp
    M flang/runtime/numeric.cpp
    A flang/test/Lower/Intrinsics/acos_complex16.f90
    A flang/test/Lower/Intrinsics/acosh_complex16.f90
    A flang/test/Lower/Intrinsics/asin_complex16.f90
    A flang/test/Lower/Intrinsics/asinh_complex16.f90
    A flang/test/Lower/Intrinsics/atan_complex16.f90
    A flang/test/Lower/Intrinsics/atanh_complex16.f90
    A flang/test/Lower/Intrinsics/cos_complex16.f90
    A flang/test/Lower/Intrinsics/cosh_complex16.f90
    A flang/test/Lower/Intrinsics/exp_complex16.f90
    A flang/test/Lower/Intrinsics/log_complex16.f90
    R flang/test/Lower/Intrinsics/missing-math-runtime.f90
    A flang/test/Lower/Intrinsics/pow_complex16.f90
    A flang/test/Lower/Intrinsics/sin_complex16.f90
    A flang/test/Lower/Intrinsics/sinh_complex16.f90
    A flang/test/Lower/Intrinsics/sqrt_complex16.f90
    A flang/test/Lower/Intrinsics/tan_complex16.f90
    A flang/test/Lower/Intrinsics/tanh_complex16.f90

  Log Message:
  -----------
  [flang] Added lowering and runtime for COMPLEX(16) intrinsics. (#83874)

For `LDBL_MANT_DIG == 113` targets the FortranFloat128Math library
is just an interface library that provides sources and compilation
options to be used for building FortranRuntime - there are not extra
dependencies on other libraries, so it can be a part of FortranRuntime,
which helps to avoid extra linking steps in the compiler driver.
Targets with __float128 support in libc will also use this path.
Other targets, where the math support comes from
FLANG_RUNTIME_F128_MATH_LIB,
FortranFloat128Math is built as a standalone static library,
and the compiler driver needs to conduct the linking.

Flang APIs for COMPLEX(16) are just thin C wrappers around
the C math functions. Flang uses C _Complex ABI for passing/returning
COMPLEX values, so the runtime is aligned to this.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list