[all-commits] [llvm/llvm-project] af57a0: [SVE] Add fatal error when running out of register...

david-arm via All-commits all-commits at lists.llvm.org
Wed Oct 14 01:32:12 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: af57a0838eba528c2e5bd805d92c611435fca0d8
      https://github.com/llvm/llvm-project/commit/af57a0838eba528c2e5bd805d92c611435fca0d8
  Author: David Sherwood <david.sherwood at arm.com>
  Date:   2020-10-14 (Wed, 14 Oct 2020)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64CallingConvention.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    A llvm/test/CodeGen/AArch64/sve-calling-convention-tuples-broken.ll

  Log Message:
  -----------
  [SVE] Add fatal error when running out of registers for SVE tuple call arguments

When passing SVE types as arguments to function calls we can run
out of hardware SVE registers. This is normally fine, since we
switch to an indirect mode where we pass a pointer to a SVE stack
object in a GPR. However, if we switch over part-way through
processing a SVE tuple then part of it will be in registers and
the other part will be on the stack. This is wrong and we'd like
to avoid any silent ABI compatibility issues in future. For now,
I've added a fatal error when this happens until we can get a
proper fix.

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




More information about the All-commits mailing list