[Hexagon] Add driver options for subtarget features

llvm-svn: 332383
This commit is contained in:
Krzysztof Parzyszek 2018-05-15 18:15:59 +00:00
parent 6a528854c4
commit df4fb5a87c
4 changed files with 47 additions and 5 deletions

View File

@ -2562,23 +2562,35 @@ 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>,
def mhexagon_hvx : Flag<["-"], "mhvx">, Group<m_hexagon_Features_HVX_Group>,
HelpText<"Enable Hexagon Vector eXtensions">;
def mhexagon_hvx_EQ : Joined<[ "-" ], "mhvx=">,
def mhexagon_hvx_EQ : Joined<["-"], "mhvx=">,
Group<m_hexagon_Features_HVX_Group>,
HelpText<"Enable Hexagon Vector eXtensions">;
def mno_hexagon_hvx : Flag<[ "-" ], "mno-hvx">,
def mno_hexagon_hvx : Flag<["-"], "mno-hvx">,
Group<m_hexagon_Features_HVX_Group>,
HelpText<"Disable Hexagon Vector eXtensions">;
def mhexagon_hvx_length_EQ : Joined<[ "-" ], "mhvx-length=">,
def mhexagon_hvx_length_EQ : Joined<["-"], "mhvx-length=">,
Group<m_hexagon_Features_HVX_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<m_hexagon_Features_Group>,
Flags<[CC1Option]>, HelpText<"Enable generation of memop instructions">;
def mno_memops : Flag<["-"], "mno-memops">, Group<m_hexagon_Features_Group>,
Flags<[CC1Option]>, HelpText<"Disable generation of memop instructions">;
def mpackets : Flag<["-"], "mpackets">, Group<m_hexagon_Features_Group>,
Flags<[CC1Option]>, HelpText<"Enable generation of instruction packets">;
def mno_packets : Flag<["-"], "mno-packets">, Group<m_hexagon_Features_Group>,
Flags<[CC1Option]>, HelpText<"Disable generation of instruction packets">;
def mnvj : Flag<["-"], "mnvj">, Group<m_hexagon_Features_Group>,
Flags<[CC1Option]>, HelpText<"Enable generation of new-value jumps">;
def mno_nvj : Flag<["-"], "mno-nvj">, Group<m_hexagon_Features_Group>,
Flags<[CC1Option]>, HelpText<"Disable generation of new-value jumps">;
def mnvs : Flag<["-"], "mnvs">, Group<m_hexagon_Features_Group>,
Flags<[CC1Option]>, HelpText<"Enable generation of new-value stores">;
def mno_nvs : Flag<["-"], "mno-nvs">, Group<m_hexagon_Features_Group>,
Flags<[CC1Option]>, HelpText<"Disable generation of new-value stores">;
// X86 feature flags

View File

@ -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"

View File

@ -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"

View File

@ -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"