[all-commits] [llvm/llvm-project] 82b51a: [AArch64] Support SLC in ACLE prefetch intrinsics

Sam Elliott via All-commits all-commits at lists.llvm.org
Fri Dec 16 06:43:04 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 82b51a14280414a53413ed62c001d2c589c649c3
      https://github.com/llvm/llvm-project/commit/82b51a14280414a53413ed62c001d2c589c649c3
  Author: Archibald Elliott <archibald.elliott at arm.com>
  Date:   2022-12-16 (Fri, 16 Dec 2022)

  Changed paths:
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/test/CodeGen/arm_acle.c
    M clang/test/CodeGen/builtins-arm64.c
    M clang/test/Sema/builtins-arm64.c
    M llvm/include/llvm/IR/IntrinsicsAArch64.td
    M llvm/lib/IR/Verifier.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.h
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
    A llvm/test/CodeGen/AArch64/arm64-prefetch-new.ll

  Log Message:
  -----------
  [AArch64] Support SLC in ACLE prefetch intrinsics

This change:
- Modifies the ACLE code to allow the new SLC value (3) for the prefetch
  target.

- Introduces a new intrinsic, @llvm.aarch64.prefetch which matches the
  PRFM family instructions much more closely, and can represent all
  values for the PRFM immediate.

  The target-independent @llvm.prefetch intrinsic does not have enough
  information for us to be able to lower to it from the ACLE intrinsics
  correctly.

- Lowers the acle calls to the new intrinsic on aarch64 (the ARM
  lowering is unchanged).

- Implements code generation for the new intrinsic in both SelectionDAG
  and GlobalISel. We specifically choose to continue to support lowering
  the target-independent @llvm.prefetch intrinsic so that other
  frontends can continue to use it.

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




More information about the All-commits mailing list