[all-commits] [llvm/llvm-project] e0a281: [clang][RISCV] Fix ABI mismatch between GCC and Cl...

Alex Bradbury via All-commits all-commits at lists.llvm.org
Tue Jan 24 06:21:01 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e0a28188d2b53427bc90cdf7f7899c64af102489
      https://github.com/llvm/llvm-project/commit/e0a28188d2b53427bc90cdf7f7899c64af102489
  Author: Alex Bradbury <asb at igalia.com>
  Date:   2023-01-24 (Tue, 24 Jan 2023)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/CodeGen/TargetInfo.cpp
    M clang/test/CodeGen/RISCV/riscv32-ilp32-abi.c
    M clang/test/CodeGen/RISCV/riscv32-ilp32-ilp32f-abi.c
    M clang/test/CodeGen/RISCV/riscv32-ilp32-ilp32f-ilp32d-abi.c
    M clang/test/CodeGen/RISCV/riscv32-ilp32f-abi.c
    M clang/test/CodeGen/RISCV/riscv64-lp64-abi.c
    M clang/test/CodeGen/RISCV/riscv64-lp64-lp64f-abi.c
    M clang/test/CodeGen/RISCV/riscv64-lp64-lp64f-lp64d-abi.c

  Log Message:
  -----------
  [clang][RISCV] Fix ABI mismatch between GCC and Clang (extension of integers on stack)

See <https://github.com/llvm/llvm-project/issues/57261> for full
details. Essentially, a previous version of the psABI indicated (by my
reading) that integer scalars passed on the stack were anyext. A [later
commit](https://github.com/riscv-non-isa/riscv-elf-psabi-doc/commit/cec39a064ee0e5b0129973fffab7e3ad1710498f)
changed this to indicate that they are in fact signext/zeroext just as
if they were passed in registers.

This patch adds the change in the release notes but doesn't add a flag
to retain the old behaviour. The hope is that it's sufficiently hard to
trigger an issue due to this that it isn't worthwhile doing so.

Differential Revision: https://reviews.llvm.org/D140401




More information about the All-commits mailing list