[all-commits] [llvm/llvm-project] 886843: [flang] Set func.func arg attributes for procedure...

jeanPerier via All-commits all-commits at lists.llvm.org
Mon Oct 9 00:29:29 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 886843170621d11a775aaa72b9c1ad94b076fa16
      https://github.com/llvm/llvm-project/commit/886843170621d11a775aaa72b9c1ad94b076fa16
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2023-10-09 (Mon, 09 Oct 2023)

  Changed paths:
    M flang/include/flang/Lower/CallInterface.h
    M flang/lib/Lower/CallInterface.cpp
    M flang/lib/Lower/ConvertProcedureDesignator.cpp
    M flang/lib/Lower/IO.cpp
    A flang/test/Lower/HLFIR/procedure-designators-arg-attrs.f90

  Log Message:
  -----------
  [flang] Set func.func arg attributes for procedure designators (#68420)

Currently, if the first usage of a procedure not defined in the file was
inside a procedure designator reference (not a call to it), the lowered
func.func lacked the argument attributes if any.

Fix this by using `CallInterface<T>::declare` too in SignatureBuilder to
create a new func.func instead of using custom code.

Note: this problem was made worse by the fact that module variables
fir.global are currently lowered before the module procedures func.func
are created. I will try to fix that in a later patch (the debug location
may still be wrong in certain cases) because there is quite some test
fallout when changing the order of globals/funcop in the output.




More information about the All-commits mailing list