This revision was automatically updated to reflect the committed changes. Closed by commit rG9ec7448857c1: [Clang][AArch64] Add support for -mcpu=grace (authored by SjoerdMeijer). Herald added a project: clang. Herald added a subscriber: cfe-commits.
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136425/new/ https://reviews.llvm.org/D136425 Files: clang/lib/Driver/ToolChains/Arch/AArch64.cpp clang/test/Driver/aarch64-mcpu.c llvm/include/llvm/Support/AArch64TargetParser.h Index: llvm/include/llvm/Support/AArch64TargetParser.h =================================================================== --- llvm/include/llvm/Support/AArch64TargetParser.h +++ llvm/include/llvm/Support/AArch64TargetParser.h @@ -139,6 +139,13 @@ StringRef getArchExtFeature(StringRef ArchExt); ArchKind convertV9toV8(ArchKind AK); +// FIXME: We should be able to define CPU aliases in TargetParser. +inline StringRef resolveCPUAlias(StringRef CPU) { + if (CPU == "grace") + return "neoverse-v2"; + return CPU; +} + // Information by Name unsigned getDefaultFPU(StringRef CPU, ArchKind AK); uint64_t getDefaultExtensions(StringRef CPU, ArchKind AK); Index: clang/test/Driver/aarch64-mcpu.c =================================================================== --- clang/test/Driver/aarch64-mcpu.c +++ clang/test/Driver/aarch64-mcpu.c @@ -61,6 +61,9 @@ // RUN: %clang -target aarch64 -mcpu=cortex-r82 -### -c %s 2>&1 | FileCheck -check-prefix=CORTEXR82 %s // CORTEXR82: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "cortex-r82" +// RUN: %clang -target aarch64 -mcpu=grace -### -c %s 2>&1 | FileCheck -check-prefix=GRACE %s +// GRACE: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "neoverse-v2" + // ================== Check whether -mcpu and -mtune accept mixed-case values. // RUN: %clang -target aarch64 -mcpu=Cortex-a53 -### -c %s 2>&1 | FileCheck -check-prefix=CASE-INSENSITIVE-CA53 %s // RUN: %clang -target aarch64 -mtune=Cortex-a53 -### -c %s 2>&1 | FileCheck -check-prefix=CASE-INSENSITIVE-CA53-TUNE %s Index: clang/lib/Driver/ToolChains/Arch/AArch64.cpp =================================================================== --- clang/lib/Driver/ToolChains/Arch/AArch64.cpp +++ clang/lib/Driver/ToolChains/Arch/AArch64.cpp @@ -38,6 +38,8 @@ CPU = Mcpu.split("+").first.lower(); } + CPU = llvm::AArch64::resolveCPUAlias(CPU); + // Handle CPU name is 'native'. if (CPU == "native") return std::string(llvm::sys::getHostCPUName()); @@ -121,6 +123,8 @@ CPU = Split.first; llvm::AArch64::ArchKind ArchKind = llvm::AArch64::ArchKind::ARMV8A; + CPU = llvm::AArch64::resolveCPUAlias(CPU); + if (CPU == "native") CPU = llvm::sys::getHostCPUName();
Index: llvm/include/llvm/Support/AArch64TargetParser.h =================================================================== --- llvm/include/llvm/Support/AArch64TargetParser.h +++ llvm/include/llvm/Support/AArch64TargetParser.h @@ -139,6 +139,13 @@ StringRef getArchExtFeature(StringRef ArchExt); ArchKind convertV9toV8(ArchKind AK); +// FIXME: We should be able to define CPU aliases in TargetParser. +inline StringRef resolveCPUAlias(StringRef CPU) { + if (CPU == "grace") + return "neoverse-v2"; + return CPU; +} + // Information by Name unsigned getDefaultFPU(StringRef CPU, ArchKind AK); uint64_t getDefaultExtensions(StringRef CPU, ArchKind AK); Index: clang/test/Driver/aarch64-mcpu.c =================================================================== --- clang/test/Driver/aarch64-mcpu.c +++ clang/test/Driver/aarch64-mcpu.c @@ -61,6 +61,9 @@ // RUN: %clang -target aarch64 -mcpu=cortex-r82 -### -c %s 2>&1 | FileCheck -check-prefix=CORTEXR82 %s // CORTEXR82: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "cortex-r82" +// RUN: %clang -target aarch64 -mcpu=grace -### -c %s 2>&1 | FileCheck -check-prefix=GRACE %s +// GRACE: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "neoverse-v2" + // ================== Check whether -mcpu and -mtune accept mixed-case values. // RUN: %clang -target aarch64 -mcpu=Cortex-a53 -### -c %s 2>&1 | FileCheck -check-prefix=CASE-INSENSITIVE-CA53 %s // RUN: %clang -target aarch64 -mtune=Cortex-a53 -### -c %s 2>&1 | FileCheck -check-prefix=CASE-INSENSITIVE-CA53-TUNE %s Index: clang/lib/Driver/ToolChains/Arch/AArch64.cpp =================================================================== --- clang/lib/Driver/ToolChains/Arch/AArch64.cpp +++ clang/lib/Driver/ToolChains/Arch/AArch64.cpp @@ -38,6 +38,8 @@ CPU = Mcpu.split("+").first.lower(); } + CPU = llvm::AArch64::resolveCPUAlias(CPU); + // Handle CPU name is 'native'. if (CPU == "native") return std::string(llvm::sys::getHostCPUName()); @@ -121,6 +123,8 @@ CPU = Split.first; llvm::AArch64::ArchKind ArchKind = llvm::AArch64::ArchKind::ARMV8A; + CPU = llvm::AArch64::resolveCPUAlias(CPU); + if (CPU == "native") CPU = llvm::sys::getHostCPUName();
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits