This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGea0dae096189: [RISCV] Add Tag_RISCV_arch attribute by default when using clang as an… (authored by craig.topper).
Changed prior to commit: https://reviews.llvm.org/D148817?vs=515511&id=515832#toc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148817/new/ https://reviews.llvm.org/D148817 Files: clang/lib/Driver/ToolChains/Clang.cpp clang/test/Driver/riscv-default-build-attributes.s Index: clang/test/Driver/riscv-default-build-attributes.s =================================================================== --- /dev/null +++ clang/test/Driver/riscv-default-build-attributes.s @@ -0,0 +1,29 @@ +//// Enabled by default for assembly +// RUN: %clang --target=riscv32 -### %s 2>&1 \ +// RUN: | FileCheck %s --check-prefix=CHECK-ENABLED +// RUN: %clang --target=riscv64 -### %s 2>&1 \ +// RUN: | FileCheck %s --check-prefix=CHECK-ENABLED + +/// Can be forced on or off for assembly. +// RUN: %clang --target=riscv32 -### %s 2>&1 -mno-default-build-attributes \ +// RUN: | FileCheck %s --check-prefix=CHECK-DISABLED +// RUN: %clang --target=riscv64 -### %s 2>&1 -mno-default-build-attributes \ +// RUN: | FileCheck %s --check-prefix=CHECK-DISABLED +// RUN: %clang --target=riscv32 -### %s 2>&1 -mdefault-build-attributes \ +// RUN: | FileCheck %s --check-prefix=CHECK-ENABLED +// RUN: %clang --target=riscv64 -### %s 2>&1 -mdefault-build-attributes \ +// RUN: | FileCheck %s --check-prefix=CHECK-ENABLED + +/// Option ignored for C/C++ (since we always emit hardware and ABI build +/// attributes during codegen). +// RUN: %clang --target=riscv32 -### -x c %s -mdefault-build-attributes 2>&1 \ +// RUN: | FileCheck %s --check-prefix=CHECK-DISABLED +// RUN: %clang --target=riscv64 -### -x c %s -mdefault-build-attributes 2>&1 \ +// RUN: | FileCheck %s --check-prefix=CHECK-DISABLED +// RUN: %clang --target=riscv32 -### -x c++ %s -mdefault-build-attributes 2>&1 \ +// RUN: | FileCheck %s --check-prefix=CHECK-DISABLED +// RUN: %clang --target=riscv64 -### -x c++ %s -mdefault-build-attributes 2>&1 \ +// RUN: | FileCheck %s --check-prefix=CHECK-DISABLED + +// CHECK-DISABLED-NOT: "-riscv-add-build-attributes" +// CHECK-ENABLED: "-riscv-add-build-attributes" Index: clang/lib/Driver/ToolChains/Clang.cpp =================================================================== --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -7903,6 +7903,12 @@ CmdArgs.push_back("-target-abi"); CmdArgs.push_back(ABIName.data()); + + if (Args.hasFlag(options::OPT_mdefault_build_attributes, + options::OPT_mno_default_build_attributes, true)) { + CmdArgs.push_back("-mllvm"); + CmdArgs.push_back("-riscv-add-build-attributes"); + } } void ClangAs::ConstructJob(Compilation &C, const JobAction &JA,
Index: clang/test/Driver/riscv-default-build-attributes.s =================================================================== --- /dev/null +++ clang/test/Driver/riscv-default-build-attributes.s @@ -0,0 +1,29 @@ +//// Enabled by default for assembly +// RUN: %clang --target=riscv32 -### %s 2>&1 \ +// RUN: | FileCheck %s --check-prefix=CHECK-ENABLED +// RUN: %clang --target=riscv64 -### %s 2>&1 \ +// RUN: | FileCheck %s --check-prefix=CHECK-ENABLED + +/// Can be forced on or off for assembly. +// RUN: %clang --target=riscv32 -### %s 2>&1 -mno-default-build-attributes \ +// RUN: | FileCheck %s --check-prefix=CHECK-DISABLED +// RUN: %clang --target=riscv64 -### %s 2>&1 -mno-default-build-attributes \ +// RUN: | FileCheck %s --check-prefix=CHECK-DISABLED +// RUN: %clang --target=riscv32 -### %s 2>&1 -mdefault-build-attributes \ +// RUN: | FileCheck %s --check-prefix=CHECK-ENABLED +// RUN: %clang --target=riscv64 -### %s 2>&1 -mdefault-build-attributes \ +// RUN: | FileCheck %s --check-prefix=CHECK-ENABLED + +/// Option ignored for C/C++ (since we always emit hardware and ABI build +/// attributes during codegen). +// RUN: %clang --target=riscv32 -### -x c %s -mdefault-build-attributes 2>&1 \ +// RUN: | FileCheck %s --check-prefix=CHECK-DISABLED +// RUN: %clang --target=riscv64 -### -x c %s -mdefault-build-attributes 2>&1 \ +// RUN: | FileCheck %s --check-prefix=CHECK-DISABLED +// RUN: %clang --target=riscv32 -### -x c++ %s -mdefault-build-attributes 2>&1 \ +// RUN: | FileCheck %s --check-prefix=CHECK-DISABLED +// RUN: %clang --target=riscv64 -### -x c++ %s -mdefault-build-attributes 2>&1 \ +// RUN: | FileCheck %s --check-prefix=CHECK-DISABLED + +// CHECK-DISABLED-NOT: "-riscv-add-build-attributes" +// CHECK-ENABLED: "-riscv-add-build-attributes" Index: clang/lib/Driver/ToolChains/Clang.cpp =================================================================== --- clang/lib/Driver/ToolChains/Clang.cpp +++ clang/lib/Driver/ToolChains/Clang.cpp @@ -7903,6 +7903,12 @@ CmdArgs.push_back("-target-abi"); CmdArgs.push_back(ABIName.data()); + + if (Args.hasFlag(options::OPT_mdefault_build_attributes, + options::OPT_mno_default_build_attributes, true)) { + CmdArgs.push_back("-mllvm"); + CmdArgs.push_back("-riscv-add-build-attributes"); + } } void ClangAs::ConstructJob(Compilation &C, const JobAction &JA,
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits