[all-commits] [llvm/llvm-project] 6bf806: [AArch64] ACLE: Fix issue for mismatching enum typ...

sdesmalen-arm via All-commits all-commits at lists.llvm.org
Mon Apr 12 03:19:49 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 6bf806b3e2fddf79fa0326df1da341de9da35d08
      https://github.com/llvm/llvm-project/commit/6bf806b3e2fddf79fa0326df1da341de9da35d08
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2021-04-12 (Mon, 12 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/Builtins.h
    M clang/include/clang/Basic/arm_sve.td
    M clang/lib/Basic/Builtins.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_prfb.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_prfd.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_prfh.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_prfw.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qdecb.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qdecd.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qdech.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qdecp.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qdecw.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qincb.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qincd.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qinch.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qincp.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qincw.c

  Log Message:
  -----------
  [AArch64] ACLE: Fix issue for mismatching enum types with builtins.

This patch fixes an issue with the SVE prefetch and qinc/qdec intrinsics
that take an `enum` argument, but where the builtin prototype encodes
these as `int`. Some code in SemaDecl found the mismatch and chose
to forget about the builtin altogether, which meant that any future
code using that builtin would fail. The code that forgets about the
builtin was actually obsolete after D77491 and should have been removed.
This patch now removes that code.

This patch also fixes another issue with the SVE prefetch intrinsic
when built with C++, where the builtin didn't accept the correct
pointer type, which should be `const void *`.

Reviewed By: tambre

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




More information about the All-commits mailing list