[flang] [clang] [openmp] [mlir] [libc] [lldb] [lld] [clang-tools-extra] [compiler-rt] [llvm] [libcxx] Make clang report invalid target versions for all environment types. (PR #78655)
https://github.com/ZijunZhaoCCK updated https://github.com/llvm/llvm-project/pull/78655 >From f440f44e7e270d4636ad39f4e4223c904e496d3a Mon Sep 17 00:00:00 2001 From: zijunzhao Date: Fri, 19 Jan 2024 00:47:05 + Subject: [PATCH 1/5] Make clang report invalid target versions for all environment. Followup for https://github.com/llvm/llvm-project/pull/75373 1. Make this feature not just available for android, but everyone. 2. Correct some target triples/ 3. Add opencl to the environment type list. --- clang/lib/Driver/Driver.cpp | 19 ++- clang/test/CodeGen/fp128_complex.c | 2 +- clang/test/Driver/mips-features.c| 4 ++-- clang/test/Frontend/fixed_point_bit_widths.c | 4 ++-- llvm/include/llvm/TargetParser/Triple.h | 2 +- llvm/lib/TargetParser/Triple.cpp | 14 ++ 6 files changed, 30 insertions(+), 15 deletions(-) diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 1889ea28079df..2d6986d145483 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -1430,15 +1430,16 @@ Compilation *Driver::BuildCompilation(ArrayRef ArgList) { const ToolChain &TC = getToolChain( *UArgs, computeTargetTriple(*this, TargetTriple, *UArgs)); - if (TC.getTriple().isAndroid()) { -llvm::Triple Triple = TC.getTriple(); -StringRef TripleVersionName = Triple.getEnvironmentVersionString(); - -if (Triple.getEnvironmentVersion().empty() && TripleVersionName != "") { - Diags.Report(diag::err_drv_triple_version_invalid) - << TripleVersionName << TC.getTripleString(); - ContainsError = true; -} + // Check if the environment version is valid. + llvm::Triple Triple = TC.getTriple(); + StringRef TripleVersionName = Triple.getEnvironmentVersionString(); + StringRef TripleObjectFormat = Triple.getObjectFormatTypeName(Triple.getObjectFormat()); + + if (Triple.getEnvironmentVersion().empty() && TripleVersionName != "" +&& TripleVersionName != TripleObjectFormat) { +Diags.Report(diag::err_drv_triple_version_invalid) +<< TripleVersionName << TC.getTripleString(); +ContainsError = true; } // Report warning when arm64EC option is overridden by specified target diff --git a/clang/test/CodeGen/fp128_complex.c b/clang/test/CodeGen/fp128_complex.c index 48659d2241684..0e87cbe8ce812 100644 --- a/clang/test/CodeGen/fp128_complex.c +++ b/clang/test/CodeGen/fp128_complex.c @@ -1,4 +1,4 @@ -// RUN: %clang -target aarch64-linux-gnuabi %s -S -emit-llvm -o - | FileCheck %s +// RUN: %clang -target aarch64-linux-gnueabi %s -S -emit-llvm -o - | FileCheck %s _Complex long double a, b, c, d; void test_fp128_compound_assign(void) { diff --git a/clang/test/Driver/mips-features.c b/clang/test/Driver/mips-features.c index fad6009ffb89b..18edcd05ea85c 100644 --- a/clang/test/Driver/mips-features.c +++ b/clang/test/Driver/mips-features.c @@ -400,12 +400,12 @@ // LONG-CALLS-DEF-NOT: "long-calls" // // -mbranch-likely -// RUN: %clang -target -mips-mti-linux-gnu -### -c %s -mbranch-likely 2>&1 \ +// RUN: %clang -target mips-mti-linux-gnu -### -c %s -mbranch-likely 2>&1 \ // RUN: | FileCheck --check-prefix=BRANCH-LIKELY %s // BRANCH-LIKELY: argument unused during compilation: '-mbranch-likely' // // -mno-branch-likely -// RUN: %clang -target -mips-mti-linux-gnu -### -c %s -mno-branch-likely 2>&1 \ +// RUN: %clang -target mips-mti-linux-gnu -### -c %s -mno-branch-likely 2>&1 \ // RUN: | FileCheck --check-prefix=NO-BRANCH-LIKELY %s // NO-BRANCH-LIKELY: argument unused during compilation: '-mno-branch-likely' diff --git a/clang/test/Frontend/fixed_point_bit_widths.c b/clang/test/Frontend/fixed_point_bit_widths.c index ac8db49ed516a..e56f787e824f2 100644 --- a/clang/test/Frontend/fixed_point_bit_widths.c +++ b/clang/test/Frontend/fixed_point_bit_widths.c @@ -1,7 +1,7 @@ // RUN: %clang -x c -ffixed-point -S -emit-llvm -o - %s | FileCheck %s -// RUN: %clang -x c -ffixed-point -S -emit-llvm -o - --target=x86_64-scei-ps4-ubuntu-fast %s | FileCheck %s +// RUN: %clang -x c -ffixed-point -S -emit-llvm -o - --target=x86_64-scei-ps4 %s | FileCheck %s // RUN: %clang -x c -ffixed-point -S -emit-llvm -o - --target=ppc64 %s | FileCheck %s -// RUN: %clang -x c -ffixed-point -S -emit-llvm -o - --target=x86_64-scei-ps4-windows10pro-fast %s | FileCheck %s +// RUN: %clang -x c -ffixed-point -S -emit-llvm -o - --target=x86_64-scei-ps4 %s | FileCheck %s /* Primary signed _Accum */ diff --git a/llvm/include/llvm/TargetParser/Triple.h b/llvm/include/llvm/TargetParser/Triple.h index 95014a546f724..525ea6df3643c 100644 --- a/llvm/include/llvm/TargetParser/Triple.h +++ b/llvm/include/llvm/TargetParser/Triple.h @@ -273,7 +273,7 @@ class Triple { Callable, Mesh, Amplification, - +OpenCL, OpenHOS, LastEnvironmentType = OpenHOS diff --git a/llvm/lib/TargetParser/Triple.cpp b/llvm/lib/TargetParser/Triple.cpp index b9971c25
[flang] [clang] [openmp] [mlir] [libc] [lldb] [lld] [clang-tools-extra] [compiler-rt] [llvm] [libcxx] Make clang report invalid target versions for all environment types. (PR #78655)
https://github.com/ZijunZhaoCCK updated https://github.com/llvm/llvm-project/pull/78655 >From f440f44e7e270d4636ad39f4e4223c904e496d3a Mon Sep 17 00:00:00 2001 From: zijunzhao Date: Fri, 19 Jan 2024 00:47:05 + Subject: [PATCH 1/6] Make clang report invalid target versions for all environment. Followup for https://github.com/llvm/llvm-project/pull/75373 1. Make this feature not just available for android, but everyone. 2. Correct some target triples/ 3. Add opencl to the environment type list. --- clang/lib/Driver/Driver.cpp | 19 ++- clang/test/CodeGen/fp128_complex.c | 2 +- clang/test/Driver/mips-features.c| 4 ++-- clang/test/Frontend/fixed_point_bit_widths.c | 4 ++-- llvm/include/llvm/TargetParser/Triple.h | 2 +- llvm/lib/TargetParser/Triple.cpp | 14 ++ 6 files changed, 30 insertions(+), 15 deletions(-) diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 1889ea28079df..2d6986d145483 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -1430,15 +1430,16 @@ Compilation *Driver::BuildCompilation(ArrayRef ArgList) { const ToolChain &TC = getToolChain( *UArgs, computeTargetTriple(*this, TargetTriple, *UArgs)); - if (TC.getTriple().isAndroid()) { -llvm::Triple Triple = TC.getTriple(); -StringRef TripleVersionName = Triple.getEnvironmentVersionString(); - -if (Triple.getEnvironmentVersion().empty() && TripleVersionName != "") { - Diags.Report(diag::err_drv_triple_version_invalid) - << TripleVersionName << TC.getTripleString(); - ContainsError = true; -} + // Check if the environment version is valid. + llvm::Triple Triple = TC.getTriple(); + StringRef TripleVersionName = Triple.getEnvironmentVersionString(); + StringRef TripleObjectFormat = Triple.getObjectFormatTypeName(Triple.getObjectFormat()); + + if (Triple.getEnvironmentVersion().empty() && TripleVersionName != "" +&& TripleVersionName != TripleObjectFormat) { +Diags.Report(diag::err_drv_triple_version_invalid) +<< TripleVersionName << TC.getTripleString(); +ContainsError = true; } // Report warning when arm64EC option is overridden by specified target diff --git a/clang/test/CodeGen/fp128_complex.c b/clang/test/CodeGen/fp128_complex.c index 48659d2241684..0e87cbe8ce812 100644 --- a/clang/test/CodeGen/fp128_complex.c +++ b/clang/test/CodeGen/fp128_complex.c @@ -1,4 +1,4 @@ -// RUN: %clang -target aarch64-linux-gnuabi %s -S -emit-llvm -o - | FileCheck %s +// RUN: %clang -target aarch64-linux-gnueabi %s -S -emit-llvm -o - | FileCheck %s _Complex long double a, b, c, d; void test_fp128_compound_assign(void) { diff --git a/clang/test/Driver/mips-features.c b/clang/test/Driver/mips-features.c index fad6009ffb89b..18edcd05ea85c 100644 --- a/clang/test/Driver/mips-features.c +++ b/clang/test/Driver/mips-features.c @@ -400,12 +400,12 @@ // LONG-CALLS-DEF-NOT: "long-calls" // // -mbranch-likely -// RUN: %clang -target -mips-mti-linux-gnu -### -c %s -mbranch-likely 2>&1 \ +// RUN: %clang -target mips-mti-linux-gnu -### -c %s -mbranch-likely 2>&1 \ // RUN: | FileCheck --check-prefix=BRANCH-LIKELY %s // BRANCH-LIKELY: argument unused during compilation: '-mbranch-likely' // // -mno-branch-likely -// RUN: %clang -target -mips-mti-linux-gnu -### -c %s -mno-branch-likely 2>&1 \ +// RUN: %clang -target mips-mti-linux-gnu -### -c %s -mno-branch-likely 2>&1 \ // RUN: | FileCheck --check-prefix=NO-BRANCH-LIKELY %s // NO-BRANCH-LIKELY: argument unused during compilation: '-mno-branch-likely' diff --git a/clang/test/Frontend/fixed_point_bit_widths.c b/clang/test/Frontend/fixed_point_bit_widths.c index ac8db49ed516a..e56f787e824f2 100644 --- a/clang/test/Frontend/fixed_point_bit_widths.c +++ b/clang/test/Frontend/fixed_point_bit_widths.c @@ -1,7 +1,7 @@ // RUN: %clang -x c -ffixed-point -S -emit-llvm -o - %s | FileCheck %s -// RUN: %clang -x c -ffixed-point -S -emit-llvm -o - --target=x86_64-scei-ps4-ubuntu-fast %s | FileCheck %s +// RUN: %clang -x c -ffixed-point -S -emit-llvm -o - --target=x86_64-scei-ps4 %s | FileCheck %s // RUN: %clang -x c -ffixed-point -S -emit-llvm -o - --target=ppc64 %s | FileCheck %s -// RUN: %clang -x c -ffixed-point -S -emit-llvm -o - --target=x86_64-scei-ps4-windows10pro-fast %s | FileCheck %s +// RUN: %clang -x c -ffixed-point -S -emit-llvm -o - --target=x86_64-scei-ps4 %s | FileCheck %s /* Primary signed _Accum */ diff --git a/llvm/include/llvm/TargetParser/Triple.h b/llvm/include/llvm/TargetParser/Triple.h index 95014a546f724..525ea6df3643c 100644 --- a/llvm/include/llvm/TargetParser/Triple.h +++ b/llvm/include/llvm/TargetParser/Triple.h @@ -273,7 +273,7 @@ class Triple { Callable, Mesh, Amplification, - +OpenCL, OpenHOS, LastEnvironmentType = OpenHOS diff --git a/llvm/lib/TargetParser/Triple.cpp b/llvm/lib/TargetParser/Triple.cpp index b9971c25