[PATCH] D84044: [AArch64][SVE] Add missing unwind info for SVE registers.

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 24 12:05:09 PDT 2020


efriedma added a comment.

> No changes are needed in Clang to support this AFAIK.

(I meant loosely a change to clang and/or LLVM.)

Consider the following testcase:

  #include <arm_sve.h>
  void g1(svuint8_t);
  void g2(svuint8_t);
  struct Z { svuint8_t *x; ~Z() { g2(*x); } };
  svuint8_t f(svuint8_t a, svuint8_t b) {
    Z z{&a};
    g1(b);
    return b;
  }

If unwind doesn't preserve SVE registers, we need a spill here.  clang currently doesn't generate one at -O2.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D84044/new/

https://reviews.llvm.org/D84044





More information about the llvm-commits mailing list