For PR17164: split -fno-lax-vector-conversion into three different
authorRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 13 Sep 2019 06:02:15 +0000 (06:02 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 13 Sep 2019 06:02:15 +0000 (06:02 +0000)
commitc624510f134ceee9bdb5308b6f4892890c61938f
tree82dbe8f9867b26691120175840d36f36e431d2fa
parent804e0c507da4065326a88d4966115c55e0920dc8
For PR17164: split -fno-lax-vector-conversion into three different
levels:

 -- none: no lax vector conversions [new GCC default]
 -- integer: only conversions between integer vectors [old GCC default]
 -- all: all conversions between same-size vectors [Clang default]

For now, Clang still defaults to "all" mode, but per my proposal on
cfe-dev (2019-04-10) the default will be changed to "integer" as soon as
that doesn't break lots of testcases. (Eventually I'd like to change the
default to "none" to match GCC and general sanity.)

Following GCC's behavior, the driver flag -flax-vector-conversions is
translated to -flax-vector-conversions=integer.

This reinstates r371805, reverted in r371813, with an additional fix for
lldb.

llvm-svn: 371817
32 files changed:
clang/include/clang/Basic/LangOptions.def
clang/include/clang/Basic/LangOptions.h
clang/include/clang/Driver/Options.td
clang/lib/Driver/ToolChains/Clang.cpp
clang/lib/Frontend/CompilerInvocation.cpp
clang/lib/Sema/SemaExpr.cpp
clang/test/CodeGen/builtins-ppc-altivec.c
clang/test/CodeGen/builtins-systemz-vector.c
clang/test/CodeGen/builtins-systemz-vector2.c
clang/test/CodeGen/builtins-systemz-vector3.c
clang/test/CodeGen/builtins-systemz-zvector-error.c
clang/test/CodeGen/builtins-systemz-zvector.c
clang/test/CodeGen/builtins-systemz-zvector2-error.c
clang/test/CodeGen/builtins-systemz-zvector2.c
clang/test/CodeGen/builtins-systemz-zvector3-error.c
clang/test/CodeGen/builtins-systemz-zvector3.c
clang/test/CodeGen/builtins-wasm.c
clang/test/CodeGenCXX/builtins-systemz-zvector.cpp
clang/test/Headers/altivec-header.c
clang/test/Headers/arm-neon-header.c
clang/test/Headers/x86-intrinsics-headers-clean.cpp
clang/test/Headers/x86-intrinsics-headers.c
clang/test/Headers/x86intrin-2.c
clang/test/Headers/x86intrin.c
clang/test/Sema/ext_vector_casts.c
clang/test/Sema/typedef-retain.c
clang/test/Sema/zvector.c
clang/test/Sema/zvector2.c
clang/test/SemaCXX/altivec.cpp
clang/test/SemaCXX/vector-no-lax.cpp
clang/test/SemaCXX/vector.cpp
lldb/source/Symbol/ClangASTContext.cpp