[llvm] r288279 - [AArch64] Refactor LSE support as feature separate from V8.1a support.

Ahmed Bougacha via llvm-commits llvm-commits at lists.llvm.org
Mon May 1 18:01:05 PDT 2017


On Wed, Nov 30, 2016 at 2:25 PM, Joel Jones via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> Author: joel_k_jones
> Date: Wed Nov 30 16:25:24 2016
> New Revision: 288279
>
> URL: http://llvm.org/viewvc/llvm-project?rev=288279&view=rev
> Log:
> [AArch64] Refactor LSE support as feature separate from V8.1a support.
>
> Summary:
> This is preparation for ThunderX processors that have Large
> System Extension (LSE) atomic instructions, but not the
> other instructions introduced by V8.1a.
> This will mimic changes to GCC as described here:
> https://gcc.gnu.org/ml/gcc-patches/2015-06/msg00388.html
>
> LSE instructions are: LD/ST<op>, CAS*, SWP
>
> Reviewers: t.p.northover, echristo, jmolloy, rengolin
>
> Subscribers: aemerson, mehdi_amini
>
> Differential Revision: https://reviews.llvm.org/D26621
>
> Added:
>     llvm/trunk/test/MC/AArch64/arm64v8.1-diagno-predicate.s
> Modified:
>     llvm/trunk/include/llvm/Support/AArch64TargetParser.def
>     llvm/trunk/include/llvm/Support/TargetParser.h
>     llvm/trunk/lib/Target/AArch64/AArch64.td
>     llvm/trunk/lib/Target/AArch64/AArch64InstrFormats.td
>     llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td
>     llvm/trunk/lib/Target/AArch64/AArch64Subtarget.h
>     llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
>     llvm/trunk/test/MC/AArch64/directive-arch-negative.s
>     llvm/trunk/test/MC/AArch64/directive-cpu.s
>
> Modified: llvm/trunk/include/llvm/Support/AArch64TargetParser.def
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/AArch64TargetParser.def?rev=288279&r1=288278&r2=288279&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/Support/AArch64TargetParser.def (original)
> +++ llvm/trunk/include/llvm/Support/AArch64TargetParser.def Wed Nov 30 16:25:24 2016
> @@ -21,15 +21,15 @@ AARCH64_ARCH("invalid", AK_INVALID, null
>  AARCH64_ARCH("armv8-a", AK_ARMV8A, "8-A", "v8", ARMBuildAttrs::CPUArch::v8_A,
>               FK_CRYPTO_NEON_FP_ARMV8,
>               (AArch64::AEK_CRC | AArch64::AEK_CRYPTO | AArch64::AEK_FP |
> -              AArch64::AEK_SIMD))
> +              AArch64::AEK_SIMD | AArch64::AEK_LSE))

FYI: I noticed this bit and don't think it's correct (v8-A doesn't
have LSE); fixed in r301890.  The default extensions are hardly used
though, so no big deal.

Sorry for the necromancy,
-Ahmed


More information about the llvm-commits mailing list