[Hexagon] Handling of new HVX flags and target-features
This patch has the following changes A new flag "-mhvx-length={64B|128B}" is introduced to specify the length of the vector. Previously we have used "-mhvx-double" for 128 Bytes. This adds the target-feature "+hvx-length{64|128}b" The "-mhvx" flag must be provided on command line to enable HVX for Hexagon. If no -mhvx-length flag is specified, a default length is picked from the arch mentioned in this priority order from either -mhvx=vxx or -mcpu. For v60 and v62 the default length is 64 Byte. For unknown versions, the length is 128 Byte. The -mhvx flag adds the target-feature "+hvxv{hvx_version}" The 64 Byte mode is soon going to be deprecated. A warning is emitted if 64 Byte is enabled. A warning is still emitted for the default 64 Byte as well. This warning can be suppressed with a -Wno flag. The "-mhvx-double" and "-mno-hvx-double" flags are deprecated. A warning is emitted if the driver sees them on commandline. "-mhvx-double" is an alias to "-mhvx-length=128B" The compilation will error out if -mhvx-length is specified with out an -mhvx/-mhvx= flag The macro HVX_LENGTH is defined and is set to the length of the vector. Eg: #define HVX_LENGTH 64 The macro HVX_ARCH is defined and is set to the version of the HVX. Eg: #define HVX_ARCH 62 Differential Revision: https://reviews.llvm.org/D38852 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316102 91177308-0d34-0410-b5e6-96231b3b80d8
Showing
- include/clang/Basic/DiagnosticDriverKinds.td 3 additions, 0 deletionsinclude/clang/Basic/DiagnosticDriverKinds.td
- include/clang/Driver/Options.td 24 additions, 8 deletionsinclude/clang/Driver/Options.td
- lib/Basic/Targets/Hexagon.cpp 22 additions, 27 deletionslib/Basic/Targets/Hexagon.cpp
- lib/Basic/Targets/Hexagon.h 6 additions, 8 deletionslib/Basic/Targets/Hexagon.h
- lib/Driver/ToolChains/Clang.cpp 1 addition, 1 deletionlib/Driver/ToolChains/Clang.cpp
- lib/Driver/ToolChains/Hexagon.cpp 79 additions, 1 deletionlib/Driver/ToolChains/Hexagon.cpp
- lib/Driver/ToolChains/Hexagon.h 1 addition, 1 deletionlib/Driver/ToolChains/Hexagon.h
- test/CodeGen/hexagon-inline-asm.c 1 addition, 1 deletiontest/CodeGen/hexagon-inline-asm.c
- test/Driver/hexagon-hvx.c 90 additions, 0 deletionstest/Driver/hexagon-hvx.c
- test/Preprocessor/hexagon-predefines.c 28 additions, 17 deletionstest/Preprocessor/hexagon-predefines.c
Loading
Please register or sign in to comment