[all-commits] [llvm/llvm-project] 4fa13a: [clang][OpenMP] Fix getNDSWDS for aarch64.

Francesco Petrogalli via All-commits all-commits at lists.llvm.org
Tue May 5 09:28:35 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 4fa13a3dac1e0ff4dbab8810ae0dc413ce6bc927
      https://github.com/llvm/llvm-project/commit/4fa13a3dac1e0ff4dbab8810ae0dc413ce6bc927
  Author: Francesco Petrogalli <francesco.petrogalli at arm.com>
  Date:   2020-05-05 (Tue, 05 May 2020)

  Changed paths:
    M clang/lib/CodeGen/CGOpenMPRuntime.cpp
    A clang/test/OpenMP/aarch64_vfabi_NarrowestDataSize.c
    A clang/test/OpenMP/aarch64_vfabi_WidestDataSize.c

  Log Message:
  -----------
  [clang][OpenMP] Fix getNDSWDS for aarch64.

Summary:
This change fixes an aarch64-specific bug in the generation of the NDS and WDS values used to compute the signature of the vector functions out of OpenMP directives like `declare simd`. When the directive is used in conjunction with the `linear` clause, the size of the pointee must be used instead of the size of the pointer to compute NDS and WDS.

The code-fix is strictly related to the behavior for `linear`, but given that the only way we have to test the NDS and WDS values is to check the resulting `<vlen>` token in the mangled name of the vector function, the tests have been extended to cover all the possible values of WDS and NDS as defined in the ABI at https://github.com/ARM-software/abi-aa/tree/master/vfabia64.

Reviewers: ABataev, jdoerfert, andwar

Reviewed By: jdoerfert

Subscribers: yaxunl, kristof.beyls, guansong, danielkiss, cfe-commits

Tags: #clang

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




More information about the All-commits mailing list