Author: kparzysz Date: Wed Dec 13 05:48:07 2017 New Revision: 320579 URL: http://llvm.org/viewvc/llvm-project?rev=320579&view=rev Log: [Hexagon] Add front-end support for Hexagon V65
Modified: cfe/trunk/include/clang/Driver/Options.td cfe/trunk/lib/Basic/Targets/Hexagon.cpp cfe/trunk/lib/Driver/ToolChains/Hexagon.cpp cfe/trunk/test/Driver/hexagon-hvx.c cfe/trunk/test/Driver/hexagon-toolchain-elf.c cfe/trunk/test/Preprocessor/hexagon-predefines.c Modified: cfe/trunk/include/clang/Driver/Options.td URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=320579&r1=320578&r2=320579&view=diff ============================================================================== --- cfe/trunk/include/clang/Driver/Options.td (original) +++ cfe/trunk/include/clang/Driver/Options.td Wed Dec 13 05:48:07 2017 @@ -2407,6 +2407,8 @@ def mv60 : Flag<["-"], "mv60">, Group<m_ Alias<mcpu_EQ>, AliasArgs<["hexagonv60"]>; def mv62 : Flag<["-"], "mv62">, Group<m_hexagon_Features_Group>, Alias<mcpu_EQ>, AliasArgs<["hexagonv62"]>; +def mv65 : Flag<["-"], "mv65">, Group<m_hexagon_Features_Group>, + Alias<mcpu_EQ>, AliasArgs<["hexagonv65"]>; def mhexagon_hvx : Flag<[ "-" ], "mhvx">, Group<m_hexagon_Features_HVX_Group>, HelpText<"Enable Hexagon Vector eXtensions">; Modified: cfe/trunk/lib/Basic/Targets/Hexagon.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets/Hexagon.cpp?rev=320579&r1=320578&r2=320579&view=diff ============================================================================== --- cfe/trunk/lib/Basic/Targets/Hexagon.cpp (original) +++ cfe/trunk/lib/Basic/Targets/Hexagon.cpp Wed Dec 13 05:48:07 2017 @@ -52,6 +52,9 @@ void HexagonTargetInfo::getTargetDefines } else if (CPU == "hexagonv62") { Builder.defineMacro("__HEXAGON_V62__"); Builder.defineMacro("__HEXAGON_ARCH__", "62"); + } else if (CPU == "hexagonv65") { + Builder.defineMacro("__HEXAGON_V65__"); + Builder.defineMacro("__HEXAGON_ARCH__", "65"); } if (hasFeature("hvx-length64b")) { @@ -145,6 +148,7 @@ const char *HexagonTargetInfo::getHexago .Case("hexagonv55", "55") .Case("hexagonv60", "60") .Case("hexagonv62", "62") + .Case("hexagonv65", "65") .Default(nullptr); } Modified: cfe/trunk/lib/Driver/ToolChains/Hexagon.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Hexagon.cpp?rev=320579&r1=320578&r2=320579&view=diff ============================================================================== --- cfe/trunk/lib/Driver/ToolChains/Hexagon.cpp (original) +++ cfe/trunk/lib/Driver/ToolChains/Hexagon.cpp Wed Dec 13 05:48:07 2017 @@ -32,6 +32,7 @@ static StringRef getDefaultHvxLength(Str return llvm::StringSwitch<StringRef>(Cpu) .Case("v60", "64b") .Case("v62", "64b") + .Case("v65", "64b") .Default("128b"); } Modified: cfe/trunk/test/Driver/hexagon-hvx.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/hexagon-hvx.c?rev=320579&r1=320578&r2=320579&view=diff ============================================================================== --- cfe/trunk/test/Driver/hexagon-hvx.c (original) +++ cfe/trunk/test/Driver/hexagon-hvx.c Wed Dec 13 05:48:07 2017 @@ -2,18 +2,31 @@ // Tests for the hvx features and warnings. // ----------------------------------------------------------------------------- +// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv65 -mhvx \ +// RUN: 2>&1 | FileCheck -check-prefix=CHECKHVX165 %s +// CHECKHVX165: "-target-feature" "+hvxv65" + // RUN: %clang -c %s -### -target hexagon-unknown-elf -mv62 -mhvx \ // RUN: 2>&1 | FileCheck -check-prefix=CHECKHVX162 %s // CHECKHVX162: "-target-feature" "+hvxv62" +// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv65 -mhvx \ +// RUN: -mhvx-double 2>&1 | FileCheck -check-prefix=CHECKHVX2 %s + // RUN: %clang -c %s -### -target hexagon-unknown-elf -mv62 -mhvx \ // RUN: -mhvx-double 2>&1 | FileCheck -check-prefix=CHECKHVX2 %s +// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv65 -mhvx \ +// RUN: -mhvx-length=128B 2>&1 | FileCheck -check-prefix=CHECKHVX2 %s + // RUN: %clang -c %s -### -target hexagon-unknown-elf -mv62 -mhvx \ // RUN: -mhvx-length=128B 2>&1 | FileCheck -check-prefix=CHECKHVX2 %s // CHECKHVX2-NOT: "-target-feature" "+hvx-length64b" // CHECKHVX2: "-target-feature" "+hvx-length128b" +// RUN: %clang -c %s -### -target hexagon-unknown-elf -mv65 2>&1 \ +// RUN: | FileCheck -check-prefix=CHECKHVX3 %s + // RUN: %clang -c %s -### -target hexagon-unknown-elf -mv62 2>&1 \ // RUN: | FileCheck -check-prefix=CHECKHVX3 %s // CHECKHVX3-NOT: "-target-feature" "+hvx Modified: cfe/trunk/test/Driver/hexagon-toolchain-elf.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/hexagon-toolchain-elf.c?rev=320579&r1=320578&r2=320579&view=diff ============================================================================== --- cfe/trunk/test/Driver/hexagon-toolchain-elf.c (original) +++ cfe/trunk/test/Driver/hexagon-toolchain-elf.c Wed Dec 13 05:48:07 2017 @@ -99,20 +99,28 @@ // RUN: %clang -### -target hexagon-unknown-elf \ // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ -// RUN: -O3 \ +// RUN: -mcpu=hexagonv65 \ // RUN: %s 2>&1 \ // RUN: | FileCheck -check-prefix=CHECK025 %s -// CHECK025: "-ffp-contract=fast" -// CHECK025: hexagon-link +// CHECK025: "-cc1" {{.*}} "-target-cpu" "hexagonv65" +// CHECK025: hexagon-link{{.*}}/Inputs/hexagon_tree/Tools/bin/../target/hexagon/lib/v65/crt0 // RUN: %clang -### -target hexagon-unknown-elf \ // RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ -// RUN: -O3 -ffp-contract=off \ +// RUN: -O3 \ // RUN: %s 2>&1 \ // RUN: | FileCheck -check-prefix=CHECK026 %s -// CHECK026-NOT: "-ffp-contract=fast" +// CHECK026: "-ffp-contract=fast" // CHECK026: hexagon-link +// RUN: %clang -### -target hexagon-unknown-elf \ +// RUN: -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \ +// RUN: -O3 -ffp-contract=off \ +// RUN: %s 2>&1 \ +// RUN: | FileCheck -check-prefix=CHECK027 %s +// CHECK027-NOT: "-ffp-contract=fast" +// CHECK027: hexagon-link + // ----------------------------------------------------------------------------- // Test Linker related args // ----------------------------------------------------------------------------- Modified: cfe/trunk/test/Preprocessor/hexagon-predefines.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/hexagon-predefines.c?rev=320579&r1=320578&r2=320579&view=diff ============================================================================== --- cfe/trunk/test/Preprocessor/hexagon-predefines.c (original) +++ cfe/trunk/test/Preprocessor/hexagon-predefines.c Wed Dec 13 05:48:07 2017 @@ -19,6 +19,20 @@ // CHECK-V60-NOT: #define __HVX__ 1 // CHECK-V60: #define __hexagon__ 1 +// RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv62 %s | FileCheck %s -check-prefix CHECK-V62 +// CHECK-V62: #define __HEXAGON_ARCH__ 62 +// CHECK-V62: #define __HEXAGON_V62__ 1 +// CHECK-V62-NOT: #define __HVX_LENGTH__ +// CHECK-V62-NOT: #define __HVX__ 1 +// CHECK-V62: #define __hexagon__ 1 + +// RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv65 %s | FileCheck %s -check-prefix CHECK-V65 +// CHECK-V65: #define __HEXAGON_ARCH__ 65 +// CHECK-V65: #define __HEXAGON_V65__ 1 +// CHECK-V65-NOT: #define __HVX_LENGTH__ +// CHECK-V65-NOT: #define __HVX__ 1 +// CHECK-V65: #define __hexagon__ 1 + // The HVX flags are explicitly defined by the driver. // RUN: %clang_cc1 -E -dM -triple hexagon-unknown-elf -target-cpu hexagonv60 \ // RUN: -target-feature +hvxv60 -target-feature +hvx-length64b %s | FileCheck \ _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits