[all-commits] [llvm/llvm-project] afa52d: [flang][Runtime] Add SIGNAL intrinisic (#79337)

Tom Eccles via All-commits all-commits at lists.llvm.org
Fri Jan 26 06:21:14 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: afa52de9f6def6a0de962401f9a6b34925f7010e
      https://github.com/llvm/llvm-project/commit/afa52de9f6def6a0de962401f9a6b34925f7010e
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-01-26 (Fri, 26 Jan 2024)

  Changed paths:
    M flang/docs/Intrinsics.md
    M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
    M flang/include/flang/Optimizer/Builder/Runtime/Intrinsics.h
    M flang/include/flang/Optimizer/Builder/Runtime/RTBuilder.h
    M flang/include/flang/Runtime/extensions.h
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/lib/Optimizer/Builder/Runtime/Intrinsics.cpp
    M flang/runtime/extensions.cpp
    A flang/test/Lower/Intrinsics/signal.f90

  Log Message:
  -----------
  [flang][Runtime] Add SIGNAL intrinisic (#79337)

The intrinsic is defined as a GNU extension here:
https://gcc.gnu.org/onlinedocs/gfortran/SIGNAL.html

And as an IBM extension here:
https://www.ibm.com/docs/en/xffbg/121.141?topic=procedures-signali-proc-extension

The IBM version provides a compatible subset of the functionality
offered by the GNU version. This patch supports most of the GNU
features, but not calling SIGNAL as a function. We don't currently
support intrinsics being both subroutines AND functions and this changed
seemed too large to be justified by a non-standard intrinsic.

I cannot point to open source code Fortran using this intrinsic. This is
needed for a proprietary code base.




More information about the All-commits mailing list