[all-commits] [llvm/llvm-project] 2315e9: [AArch64][Driver][SVE] Push missing SVE feature er...

Peter Waller via All-commits all-commits at lists.llvm.org
Thu Dec 10 04:47:36 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 2315e9874c92bf625ec84a5f45a4fa28bfbc16ce
      https://github.com/llvm/llvm-project/commit/2315e9874c92bf625ec84a5f45a4fa28bfbc16ce
  Author: Peter Waller <peter.waller at arm.com>
  Date:   2020-12-10 (Thu, 10 Dec 2020)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Driver/ToolChains/Arch/AArch64.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/test/Driver/aarch64-sve-vector-bits.c
    A clang/test/Sema/arm-vector-types-support.c
    R clang/test/Sema/neon-vector-types-support.c

  Log Message:
  -----------
  [AArch64][Driver][SVE] Push missing SVE feature error from driver to frontend

... and give more guidance to users.

If specifying -msve-vector-bits on a non-SVE target, clang would say:

    error: '-msve-vector-bits' is not supported without SVE enabled

1. The driver lacks logic for "implied features".
   This would result in this error being raised for -march=...+sve2,
   even though +sve2 implies +sve.

2. Feature implication is well modelled in LLVM, so push the error down
   the stack.

3. Hint to the user what flag they need to consider setting.

Now clang fails later, when the feature is used, saying:

  aarch64-sve-vector-bits.c:42:41: error: 'arm_sve_vector_bits' attribute is not supported on targets missing 'sve'; specify an appropriate -march= or -mcpu=
  typedef svint32_t noflag __attribute__((arm_sve_vector_bits(256)));

Move clang/test/Sema/{neon => arm}-vector-types-support.c and put tests for
this warning together in one place.

Reviewed By: sdesmalen

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




More information about the All-commits mailing list