From df4fb5a87c1799ae515346ad56a88ec378f1f5ae Mon Sep 17 00:00:00 2001 From: Krzysztof Parzyszek Date: Tue, 15 May 2018 18:15:59 +0000 Subject: [PATCH] [Hexagon] Add driver options for subtarget features llvm-svn: 332383 --- clang/include/clang/Driver/Options.td | 22 +++++++++++++++++----- clang/test/Driver/hexagon-memops.c | 10 ++++++++++ clang/test/Driver/hexagon-nvj.c | 10 ++++++++++ clang/test/Driver/hexagon-nvs.c | 10 ++++++++++ 4 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 clang/test/Driver/hexagon-memops.c create mode 100644 clang/test/Driver/hexagon-nvj.c create mode 100644 clang/test/Driver/hexagon-nvs.c diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 0919f97665bf..5b0593aaa940 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -2562,23 +2562,35 @@ def mv62 : Flag<["-"], "mv62">, Group, Alias, AliasArgs<["hexagonv62"]>; def mv65 : Flag<["-"], "mv65">, Group, Alias, AliasArgs<["hexagonv65"]>; -def mhexagon_hvx : Flag<[ "-" ], "mhvx">, Group, +def mhexagon_hvx : Flag<["-"], "mhvx">, Group, HelpText<"Enable Hexagon Vector eXtensions">; -def mhexagon_hvx_EQ : Joined<[ "-" ], "mhvx=">, +def mhexagon_hvx_EQ : Joined<["-"], "mhvx=">, Group, HelpText<"Enable Hexagon Vector eXtensions">; -def mno_hexagon_hvx : Flag<[ "-" ], "mno-hvx">, +def mno_hexagon_hvx : Flag<["-"], "mno-hvx">, Group, HelpText<"Disable Hexagon Vector eXtensions">; -def mhexagon_hvx_length_EQ : Joined<[ "-" ], "mhvx-length=">, +def mhexagon_hvx_length_EQ : Joined<["-"], "mhvx-length=">, Group, HelpText<"Set Hexagon Vector Length">, Values<"64B,128B">; def ffixed_r19: Flag<["-"], "ffixed-r19">, - HelpText<"Reserve the r19 register (Hexagon only)">; + HelpText<"Reserve register r19 (Hexagon only)">; +def mmemops : Flag<["-"], "mmemops">, Group, + Flags<[CC1Option]>, HelpText<"Enable generation of memop instructions">; +def mno_memops : Flag<["-"], "mno-memops">, Group, + Flags<[CC1Option]>, HelpText<"Disable generation of memop instructions">; def mpackets : Flag<["-"], "mpackets">, Group, Flags<[CC1Option]>, HelpText<"Enable generation of instruction packets">; def mno_packets : Flag<["-"], "mno-packets">, Group, Flags<[CC1Option]>, HelpText<"Disable generation of instruction packets">; +def mnvj : Flag<["-"], "mnvj">, Group, + Flags<[CC1Option]>, HelpText<"Enable generation of new-value jumps">; +def mno_nvj : Flag<["-"], "mno-nvj">, Group, + Flags<[CC1Option]>, HelpText<"Disable generation of new-value jumps">; +def mnvs : Flag<["-"], "mnvs">, Group, + Flags<[CC1Option]>, HelpText<"Enable generation of new-value stores">; +def mno_nvs : Flag<["-"], "mno-nvs">, Group, + Flags<[CC1Option]>, HelpText<"Disable generation of new-value stores">; // X86 feature flags diff --git a/clang/test/Driver/hexagon-memops.c b/clang/test/Driver/hexagon-memops.c new file mode 100644 index 000000000000..e7a94286ffda --- /dev/null +++ b/clang/test/Driver/hexagon-memops.c @@ -0,0 +1,10 @@ +// RUN: %clang -target hexagon -### -mmemops %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-MEMOPS + +// RUN: %clang -target hexagon -### -mno-memops %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-NO-MEMOPS + +// CHECK-MEMOPS: "-target-feature" "+memops" + +// CHECK-NO-MEMOPS: "-target-feature" "-memops" + diff --git a/clang/test/Driver/hexagon-nvj.c b/clang/test/Driver/hexagon-nvj.c new file mode 100644 index 000000000000..60d3839f83ac --- /dev/null +++ b/clang/test/Driver/hexagon-nvj.c @@ -0,0 +1,10 @@ +// RUN: %clang -target hexagon -### -mnvj %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-NVJ + +// RUN: %clang -target hexagon -### -mno-nvj %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-NO-NVJ + +// CHECK-NVJ: "-target-feature" "+nvj" + +// CHECK-NO-NVJ: "-target-feature" "-nvj" + diff --git a/clang/test/Driver/hexagon-nvs.c b/clang/test/Driver/hexagon-nvs.c new file mode 100644 index 000000000000..a0130e32c9fd --- /dev/null +++ b/clang/test/Driver/hexagon-nvs.c @@ -0,0 +1,10 @@ +// RUN: %clang -target hexagon -### -mnvs %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-NVS + +// RUN: %clang -target hexagon -### -mno-nvs %s 2>&1 \ +// RUN: | FileCheck %s -check-prefix CHECK-NO-NVS + +// CHECK-NVS: "-target-feature" "+nvs" + +// CHECK-NO-NVS: "-target-feature" "-nvs" +