[all-commits] [llvm/llvm-project] f65e3a: [flang] Implement COMPLEX(10) passing and return A...

jeanPerier via All-commits all-commits at lists.llvm.org
Mon Dec 4 00:47:26 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f65e3af73dd507568bcb645e1fcb3ddb738fb809
      https://github.com/llvm/llvm-project/commit/f65e3af73dd507568bcb645e1fcb3ddb738fb809
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2023-12-04 (Mon, 04 Dec 2023)

  Changed paths:
    M flang/lib/Optimizer/CodeGen/Target.cpp
    A flang/test/Fir/target-rewrite-complex-10-x86.fir

  Log Message:
  -----------
  [flang] Implement COMPLEX(10) passing and return ABI for X86-64 linux (#74094)

COMPLEX(10) passing by value and returning follows C complex
passing/returning ABI.

Cover the COMPLEX(10) case (X87 / __Complex long double on X86-64).

Implements System V ABI for AMD64 version 1.0.

The LLVM signatures match the one generated by clang for the __Complex
long double case.

Note that a FIXME is added for the COMPLEX(8) case that is incorrect in
a corner case. This will be fixed when dealing with passing derived type
by value in BIND(C) context.




More information about the All-commits mailing list