[all-commits] [llvm/llvm-project] 8689f5: [AArch64] Add support for the 'R' architecture pro...

Alexandros Lamprineas via All-commits all-commits at lists.llvm.org
Wed Oct 27 04:32:59 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8689f5e6e77394528155b624d74557790278a407
      https://github.com/llvm/llvm-project/commit/8689f5e6e77394528155b624d74557790278a407
  Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
  Date:   2021-10-27 (Wed, 27 Oct 2021)

  Changed paths:
    M clang/lib/Basic/Targets/AArch64.cpp
    M clang/lib/Basic/Targets/AArch64.h
    M clang/lib/Driver/ToolChains/Arch/AArch64.cpp
    M clang/test/Driver/aarch64-cpus.c
    M clang/test/Preprocessor/aarch64-target-features.c
    M llvm/lib/Support/AArch64TargetParser.cpp
    M llvm/lib/Target/AArch64/AArch64.td
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/AArch64Subtarget.h
    M llvm/lib/Target/AArch64/AArch64SystemOperands.td
    M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp
    M llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h
    M llvm/test/CodeGen/AArch64/arm64-crc32.ll
    M llvm/test/MC/AArch64/arm64-branch-encoding.s
    M llvm/test/MC/AArch64/arm64-system-encoding.s
    M llvm/test/MC/AArch64/armv8.1a-lse.s
    M llvm/test/MC/AArch64/armv8.1a-pan.s
    M llvm/test/MC/AArch64/armv8.1a-rdma.s
    M llvm/test/MC/AArch64/armv8.2a-at.s
    M llvm/test/MC/AArch64/armv8.2a-crypto.s
    M llvm/test/MC/AArch64/armv8.2a-dotprod-errors.s
    M llvm/test/MC/AArch64/armv8.2a-dotprod.s
    M llvm/test/MC/AArch64/armv8.2a-persistent-memory.s
    M llvm/test/MC/AArch64/armv8.2a-uao.s
    A llvm/test/MC/AArch64/armv8r-inst.s
    A llvm/test/MC/AArch64/armv8r-sysreg.s
    A llvm/test/MC/AArch64/armv8r-unsupported-inst.s
    A llvm/test/MC/AArch64/armv8r-unsupported-sysreg.s
    M llvm/test/MC/AArch64/basic-a64-instructions.s
    M llvm/test/MC/AArch64/ras-extension.s
    M llvm/test/MC/Disassembler/AArch64/arm64-branch.txt
    M llvm/test/MC/Disassembler/AArch64/armv8.3a-complex.txt
    M llvm/test/MC/Disassembler/AArch64/armv8.3a-js.txt
    M llvm/test/MC/Disassembler/AArch64/armv8.3a-rcpc.txt
    M llvm/test/MC/Disassembler/AArch64/armv8.4a-dit.txt
    M llvm/test/MC/Disassembler/AArch64/armv8.4a-flag.txt
    M llvm/test/MC/Disassembler/AArch64/armv8.4a-ras.txt
    M llvm/test/MC/Disassembler/AArch64/armv8.4a-tlb.txt
    M llvm/test/MC/Disassembler/AArch64/armv8.4a-trace.txt
    M llvm/test/MC/Disassembler/AArch64/armv8.4a-virt.txt
    M llvm/test/MC/Disassembler/AArch64/armv8.5a-predres.txt
    M llvm/test/MC/Disassembler/AArch64/armv8.5a-specrestrict.txt
    M llvm/test/MC/Disassembler/AArch64/armv8.5a-ssbs.txt
    A llvm/test/MC/Disassembler/AArch64/armv8a-el3.txt
    M llvm/test/MC/Disassembler/AArch64/armv8a-fpmul.txt
    M llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt

  Log Message:
  -----------
  [AArch64] Add support for the 'R' architecture profile.

This change introduces subtarget features to predicate certain
instructions and system registers that are available only on
'A' profile targets. Those features are not present when
targeting a generic CPU, which is the default processor.

In other words the generic CPU now means the intersection of
'A' and 'R' profiles. To maintain backwards compatibility we
enable the features that correspond to -march=armv8-a when the
architecture is not explicitly specified on the command line.

References: https://developer.arm.com/documentation/ddi0600/latest

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




More information about the All-commits mailing list