[Lldb-commits] [PATCH] D137564: [ARM] Move Triple::getARMCPUForArch into ARMTargetParser
This revision was automatically updated to reflect the committed changes. Closed by commit rG103bbddde66f: [ARM] Move Triple::getARMCPUForArch into ARMTargetParser (authored by tmatheson). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137564/new/ https://reviews.llvm.org/D137564 Files: clang/lib/Driver/ToolChains/Arch/ARM.cpp lldb/source/Utility/ArchSpec.cpp llvm/include/llvm/ADT/Triple.h llvm/include/llvm/Support/ARMTargetParser.h llvm/lib/Support/ARMTargetParser.cpp llvm/lib/Support/Triple.cpp llvm/unittests/ADT/TripleTest.cpp llvm/unittests/Support/TargetParserTest.cpp Index: llvm/unittests/Support/TargetParserTest.cpp === --- llvm/unittests/Support/TargetParserTest.cpp +++ llvm/unittests/Support/TargetParserTest.cpp @@ -6,12 +6,13 @@ // //===--===// +#include "llvm/Support/TargetParser.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/StringExtras.h" +#include "llvm/ADT/Triple.h" #include "llvm/Support/AArch64TargetParser.h" #include "llvm/Support/ARMBuildAttributes.h" #include "llvm/Support/FormatVariadic.h" -#include "llvm/Support/TargetParser.h" #include "gmock/gmock.h" #include "gtest/gtest.h" #include @@ -871,6 +872,70 @@ EXPECT_EQ(5u, ARM::parseArchVersion(ARMArch[i])); } +TEST(TargetParserTest, getARMCPUForArch) { + // Platform specific defaults. + { +llvm::Triple Triple("arm--nacl"); +EXPECT_EQ("cortex-a8", ARM::getARMCPUForArch(Triple)); + } + { +llvm::Triple Triple("arm--openbsd"); +EXPECT_EQ("cortex-a8", ARM::getARMCPUForArch(Triple)); + } + { +llvm::Triple Triple("armv6-unknown-freebsd"); +EXPECT_EQ("arm1176jzf-s", ARM::getARMCPUForArch(Triple)); + } + { +llvm::Triple Triple("thumbv6-unknown-freebsd"); +EXPECT_EQ("arm1176jzf-s", ARM::getARMCPUForArch(Triple)); + } + { +llvm::Triple Triple("armebv6-unknown-freebsd"); +EXPECT_EQ("arm1176jzf-s", ARM::getARMCPUForArch(Triple)); + } + { +llvm::Triple Triple("arm--win32"); +EXPECT_EQ("cortex-a9", ARM::getARMCPUForArch(Triple)); +EXPECT_EQ("generic", ARM::getARMCPUForArch(Triple, "armv8-a")); + } + // Some alternative architectures + { +llvm::Triple Triple("armv7k-apple-ios9"); +EXPECT_EQ("cortex-a7", ARM::getARMCPUForArch(Triple)); + } + { +llvm::Triple Triple("armv7k-apple-watchos3"); +EXPECT_EQ("cortex-a7", ARM::getARMCPUForArch(Triple)); + } + { +llvm::Triple Triple("armv7k-apple-tvos9"); +EXPECT_EQ("cortex-a7", ARM::getARMCPUForArch(Triple)); + } + // armeb is permitted, but armebeb is not + { +llvm::Triple Triple("armeb-none-eabi"); +EXPECT_EQ("arm7tdmi", ARM::getARMCPUForArch(Triple)); + } + { +llvm::Triple Triple("armebeb-none-eabi"); +EXPECT_EQ("", ARM::getARMCPUForArch(Triple)); + } + { +llvm::Triple Triple("armebv6eb-none-eabi"); +EXPECT_EQ("", ARM::getARMCPUForArch(Triple)); + } + // xscaleeb is permitted, but armebxscale is not + { +llvm::Triple Triple("xscaleeb-none-eabi"); +EXPECT_EQ("xscale", ARM::getARMCPUForArch(Triple)); + } + { +llvm::Triple Triple("armebxscale-none-eabi"); +EXPECT_EQ("", ARM::getARMCPUForArch(Triple)); + } +} + class AArch64CPUTestFixture : public ::testing::TestWithParam {}; Index: llvm/unittests/ADT/TripleTest.cpp === --- llvm/unittests/ADT/TripleTest.cpp +++ llvm/unittests/ADT/TripleTest.cpp @@ -1855,70 +1855,6 @@ Triple::normalize("aarch64-linux-android21")); } -TEST(TripleTest, getARMCPUForArch) { - // Platform specific defaults. - { -llvm::Triple Triple("arm--nacl"); -EXPECT_EQ("cortex-a8", Triple.getARMCPUForArch()); - } - { -llvm::Triple Triple("arm--openbsd"); -EXPECT_EQ("cortex-a8", Triple.getARMCPUForArch()); - } - { -llvm::Triple Triple("armv6-unknown-freebsd"); -EXPECT_EQ("arm1176jzf-s", Triple.getARMCPUForArch()); - } - { -llvm::Triple Triple("thumbv6-unknown-freebsd"); -EXPECT_EQ("arm1176jzf-s", Triple.getARMCPUForArch()); - } - { -llvm::Triple Triple("armebv6-unknown-freebsd"); -EXPECT_EQ("arm1176jzf-s", Triple.getARMCPUForArch()); - } - { -llvm::Triple Triple("arm--win32"); -EXPECT_EQ("cortex-a9", Triple.getARMCPUForArch()); -EXPECT_EQ("generic", Triple.getARMCPUForArch("armv8-a")); - } - // Some alternative architectures - { -llvm::Triple Triple("armv7k-apple-ios9"); -EXPECT_EQ("cortex-a7", Triple.getARMCPUForArch()); - } - { -llvm::Triple Triple("armv7k-apple-watchos3"); -EXPECT_EQ("cortex-a7", Triple.getARMCPUForArch()); - } - { -llvm::Triple Triple("armv7k-apple-tvos9"); -EXPECT_EQ("cortex-a7", Triple.getARMCPUForArch()); - } - // armeb is permitted, but armebeb is not - { -llvm::Triple Triple("armeb-none-eabi"); -
[Lldb-commits] [PATCH] D137564: [ARM] Move Triple::getARMCPUForArch into ARMTargetParser
tmatheson created this revision. tmatheson added reviewers: lenary, pratlucas, DavidSpickett. Herald added subscribers: hiraditya, kristof.beyls, dschuff. Herald added a project: All. tmatheson requested review of this revision. Herald added subscribers: llvm-commits, lldb-commits, cfe-commits, MaskRay. Herald added projects: clang, LLDB, LLVM. This is very backend specific so either belongs in Toolchains/ARM or in ARMTargetParser. Since it is used in lldb, ARMTargetParser made more sense. This is part of an effort to move information about ARM/AArch64 architecture versions, extensions and CPUs into their respective TargetParsers. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D137564 Files: clang/lib/Driver/ToolChains/Arch/ARM.cpp lldb/source/Utility/ArchSpec.cpp llvm/include/llvm/ADT/Triple.h llvm/include/llvm/Support/ARMTargetParser.h llvm/lib/Support/ARMTargetParser.cpp llvm/lib/Support/Triple.cpp llvm/unittests/ADT/TripleTest.cpp llvm/unittests/Support/TargetParserTest.cpp Index: llvm/unittests/Support/TargetParserTest.cpp === --- llvm/unittests/Support/TargetParserTest.cpp +++ llvm/unittests/Support/TargetParserTest.cpp @@ -6,12 +6,13 @@ // //===--===// +#include "llvm/Support/TargetParser.h" #include "llvm/ADT/STLExtras.h" #include "llvm/ADT/StringExtras.h" +#include "llvm/ADT/Triple.h" #include "llvm/Support/AArch64TargetParser.h" #include "llvm/Support/ARMBuildAttributes.h" #include "llvm/Support/FormatVariadic.h" -#include "llvm/Support/TargetParser.h" #include "gmock/gmock.h" #include "gtest/gtest.h" #include @@ -871,6 +872,70 @@ EXPECT_EQ(5u, ARM::parseArchVersion(ARMArch[i])); } +TEST(TargetParserTest, getARMCPUForArch) { + // Platform specific defaults. + { +llvm::Triple Triple("arm--nacl"); +EXPECT_EQ("cortex-a8", ARM::getARMCPUForArch(Triple)); + } + { +llvm::Triple Triple("arm--openbsd"); +EXPECT_EQ("cortex-a8", ARM::getARMCPUForArch(Triple)); + } + { +llvm::Triple Triple("armv6-unknown-freebsd"); +EXPECT_EQ("arm1176jzf-s", ARM::getARMCPUForArch(Triple)); + } + { +llvm::Triple Triple("thumbv6-unknown-freebsd"); +EXPECT_EQ("arm1176jzf-s", ARM::getARMCPUForArch(Triple)); + } + { +llvm::Triple Triple("armebv6-unknown-freebsd"); +EXPECT_EQ("arm1176jzf-s", ARM::getARMCPUForArch(Triple)); + } + { +llvm::Triple Triple("arm--win32"); +EXPECT_EQ("cortex-a9", ARM::getARMCPUForArch(Triple)); +EXPECT_EQ("generic", ARM::getARMCPUForArch(Triple, "armv8-a")); + } + // Some alternative architectures + { +llvm::Triple Triple("armv7k-apple-ios9"); +EXPECT_EQ("cortex-a7", ARM::getARMCPUForArch(Triple)); + } + { +llvm::Triple Triple("armv7k-apple-watchos3"); +EXPECT_EQ("cortex-a7", ARM::getARMCPUForArch(Triple)); + } + { +llvm::Triple Triple("armv7k-apple-tvos9"); +EXPECT_EQ("cortex-a7", ARM::getARMCPUForArch(Triple)); + } + // armeb is permitted, but armebeb is not + { +llvm::Triple Triple("armeb-none-eabi"); +EXPECT_EQ("arm7tdmi", ARM::getARMCPUForArch(Triple)); + } + { +llvm::Triple Triple("armebeb-none-eabi"); +EXPECT_EQ("", ARM::getARMCPUForArch(Triple)); + } + { +llvm::Triple Triple("armebv6eb-none-eabi"); +EXPECT_EQ("", ARM::getARMCPUForArch(Triple)); + } + // xscaleeb is permitted, but armebxscale is not + { +llvm::Triple Triple("xscaleeb-none-eabi"); +EXPECT_EQ("xscale", ARM::getARMCPUForArch(Triple)); + } + { +llvm::Triple Triple("armebxscale-none-eabi"); +EXPECT_EQ("", ARM::getARMCPUForArch(Triple)); + } +} + class AArch64CPUTestFixture : public ::testing::TestWithParam {}; Index: llvm/unittests/ADT/TripleTest.cpp === --- llvm/unittests/ADT/TripleTest.cpp +++ llvm/unittests/ADT/TripleTest.cpp @@ -1855,70 +1855,6 @@ Triple::normalize("aarch64-linux-android21")); } -TEST(TripleTest, getARMCPUForArch) { - // Platform specific defaults. - { -llvm::Triple Triple("arm--nacl"); -EXPECT_EQ("cortex-a8", Triple.getARMCPUForArch()); - } - { -llvm::Triple Triple("arm--openbsd"); -EXPECT_EQ("cortex-a8", Triple.getARMCPUForArch()); - } - { -llvm::Triple Triple("armv6-unknown-freebsd"); -EXPECT_EQ("arm1176jzf-s", Triple.getARMCPUForArch()); - } - { -llvm::Triple Triple("thumbv6-unknown-freebsd"); -EXPECT_EQ("arm1176jzf-s", Triple.getARMCPUForArch()); - } - { -llvm::Triple Triple("armebv6-unknown-freebsd"); -EXPECT_EQ("arm1176jzf-s", Triple.getARMCPUForArch()); - } - { -llvm::Triple Triple("arm--win32"); -EXPECT_EQ("cortex-a9", Triple.getARMCPUForArch()); -EXPECT_EQ("generic", Triple.getARMCPUForArch("armv8-a")); - } - // Some alternative architectures - { -llvm::Triple Triple("armv7k-apple-ios9"); -