Author: joerg Date: Mon Nov 9 18:40:29 2015 New Revision: 252571 URL: http://llvm.org/viewvc/llvm-project?rev=252571&view=rev Log: Use the generic Sparc CPU handling for Linux, FreeBSD and OpenBSD, too. This currently changes the default toward the more historic -Av8/-Av9, but as discussed with James Y Knight, consistency is for now more important than figuring out which default CPU each OS should be using.
Modified: cfe/trunk/lib/Driver/Tools.cpp cfe/trunk/test/Driver/freebsd.c cfe/trunk/test/Driver/linux-as.c cfe/trunk/test/Driver/openbsd.c Modified: cfe/trunk/lib/Driver/Tools.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=252571&r1=252570&r2=252571&view=diff ============================================================================== --- cfe/trunk/lib/Driver/Tools.cpp (original) +++ cfe/trunk/lib/Driver/Tools.cpp Mon Nov 9 18:40:29 2015 @@ -7156,7 +7156,6 @@ void openbsd::Assembler::ConstructJob(Co const char *LinkingOutput) const { claimNoWarnArgs(Args); ArgStringList CmdArgs; - bool NeedsKPIC = false; switch (getToolChain().getArch()) { case llvm::Triple::x86: @@ -7171,16 +7170,21 @@ void openbsd::Assembler::ConstructJob(Co break; case llvm::Triple::sparc: - case llvm::Triple::sparcel: + case llvm::Triple::sparcel: { CmdArgs.push_back("-32"); - NeedsKPIC = true; + std::string CPU = getCPUName(Args, getToolChain().getTriple()); + CmdArgs.push_back(getSparcAsmModeForCPU(CPU, getToolChain().getTriple())); + AddAssemblerKPIC(getToolChain(), Args, CmdArgs); break; + } - case llvm::Triple::sparcv9: + case llvm::Triple::sparcv9: { CmdArgs.push_back("-64"); - CmdArgs.push_back("-Av9a"); - NeedsKPIC = true; + std::string CPU = getCPUName(Args, getToolChain().getTriple()); + CmdArgs.push_back(getSparcAsmModeForCPU(CPU, getToolChain().getTriple())); + AddAssemblerKPIC(getToolChain(), Args, CmdArgs); break; + } case llvm::Triple::mips64: case llvm::Triple::mips64el: { @@ -7196,7 +7200,7 @@ void openbsd::Assembler::ConstructJob(Co else CmdArgs.push_back("-EL"); - NeedsKPIC = true; + AddAssemblerKPIC(getToolChain(), Args, CmdArgs); break; } @@ -7204,9 +7208,6 @@ void openbsd::Assembler::ConstructJob(Co break; } - if (NeedsKPIC) - AddAssemblerKPIC(getToolChain(), Args, CmdArgs); - Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler); CmdArgs.push_back("-o"); @@ -7545,15 +7546,13 @@ void freebsd::Assembler::ConstructJob(Co } case llvm::Triple::sparc: case llvm::Triple::sparcel: - case llvm::Triple::sparcv9: - if (getToolChain().getArch() == llvm::Triple::sparc) - CmdArgs.push_back("-Av8plusa"); - else - CmdArgs.push_back("-Av9a"); - + case llvm::Triple::sparcv9: { + std::string CPU = getCPUName(Args, getToolChain().getTriple()); + CmdArgs.push_back(getSparcAsmModeForCPU(CPU, getToolChain().getTriple())); AddAssemblerKPIC(getToolChain(), Args, CmdArgs); break; } + } Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler); @@ -8056,7 +8055,6 @@ void gnutools::Assembler::ConstructJob(C llvm::Triple Triple = llvm::Triple(TripleStr); ArgStringList CmdArgs; - bool NeedsKPIC = false; llvm::Reloc::Model RelocationModel; unsigned PICLevel; @@ -8095,16 +8093,20 @@ void gnutools::Assembler::ConstructJob(C CmdArgs.push_back("-mlittle-endian"); break; case llvm::Triple::sparc: - case llvm::Triple::sparcel: + case llvm::Triple::sparcel: { CmdArgs.push_back("-32"); - CmdArgs.push_back("-Av8plusa"); - NeedsKPIC = true; + std::string CPU = getCPUName(Args, getToolChain().getTriple()); + CmdArgs.push_back(getSparcAsmModeForCPU(CPU, getToolChain().getTriple())); + AddAssemblerKPIC(getToolChain(), Args, CmdArgs); break; - case llvm::Triple::sparcv9: + } + case llvm::Triple::sparcv9: { CmdArgs.push_back("-64"); - CmdArgs.push_back("-Av9a"); - NeedsKPIC = true; + std::string CPU = getCPUName(Args, getToolChain().getTriple()); + CmdArgs.push_back(getSparcAsmModeForCPU(CPU, getToolChain().getTriple())); + AddAssemblerKPIC(getToolChain(), Args, CmdArgs); break; + } case llvm::Triple::arm: case llvm::Triple::armeb: case llvm::Triple::thumb: @@ -8227,7 +8229,7 @@ void gnutools::Assembler::ConstructJob(C Args.AddLastArg(CmdArgs, options::OPT_modd_spreg, options::OPT_mno_odd_spreg); - NeedsKPIC = true; + AddAssemblerKPIC(getToolChain(), Args, CmdArgs); break; } case llvm::Triple::systemz: { @@ -8239,11 +8241,6 @@ void gnutools::Assembler::ConstructJob(C } } - if (NeedsKPIC) { - if (RelocationModel != llvm::Reloc::Static) - CmdArgs.push_back("-KPIC"); - } - Args.AddAllArgs(CmdArgs, options::OPT_I); Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA, options::OPT_Xassembler); Modified: cfe/trunk/test/Driver/freebsd.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/freebsd.c?rev=252571&r1=252570&r2=252571&view=diff ============================================================================== --- cfe/trunk/test/Driver/freebsd.c (original) +++ cfe/trunk/test/Driver/freebsd.c Mon Nov 9 18:40:29 2015 @@ -135,4 +135,4 @@ // RUN: %clang -mcpu=ultrasparc -target sparc64-unknown-freebsd8 %s -### -no-integrated-as 2>&1 \ // RUN: | FileCheck --check-prefix=CHECK-SPARC-CPU %s // CHECK-SPARC-CPU: cc1{{.*}}" "-target-cpu" "ultrasparc" -// CHECK-SPARC-CPU: as{{.*}}" "-Av9a +// CHECK-SPARC-CPU: as{{.*}}" "-Av9 Modified: cfe/trunk/test/Driver/linux-as.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/linux-as.c?rev=252571&r1=252570&r2=252571&view=diff ============================================================================== --- cfe/trunk/test/Driver/linux-as.c (original) +++ cfe/trunk/test/Driver/linux-as.c Mon Nov 9 18:40:29 2015 @@ -110,7 +110,7 @@ // RUN: | FileCheck -check-prefix=CHECK-SPARCV9 %s // CHECK-SPARCV9: as // CHECK-SPARCV9: -64 -// CHECK-SPARCV9: -Av9a +// CHECK-SPARCV9: -Av9 // CHECK-SPARCV9-NOT: -KPIC // CHECK-SPARCV9: -o // @@ -119,7 +119,7 @@ // RUN: | FileCheck -check-prefix=CHECK-SPARCV9PIC %s // CHECK-SPARCV9PIC: as // CHECK-SPARCV9PIC: -64 -// CHECK-SPARCV9PIC: -Av9a +// CHECK-SPARCV9PIC: -Av9 // CHECK-SPARCV9PIC: -KPIC // CHECK-SPARCV9PIC: -o // @@ -128,7 +128,7 @@ // RUN: | FileCheck -check-prefix=CHECK-SPARCV8 %s // CHECK-SPARCV8: as // CHECK-SPARCV8: -32 -// CHECK-SPARCV8: -Av8plusa +// CHECK-SPARCV8: -Av8 // CHECK-SPARCV8: -o // // RUN: %clang -target sparcel-linux -mcpu=invalid-cpu -### \ @@ -136,7 +136,7 @@ // RUN: | FileCheck -check-prefix=CHECK-SPARCV8EL %s // CHECK-SPARCV8EL: as // CHECK-SPARCV8EL: -32 -// CHECK-SPARCV8EL: -Av8plusa +// CHECK-SPARCV8EL: -Av8 // CHECK-SPARCV8EL: -o // // RUN: %clang -target s390x-linux -### -no-integrated-as -c %s 2>&1 \ Modified: cfe/trunk/test/Driver/openbsd.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/openbsd.c?rev=252571&r1=252570&r2=252571&view=diff ============================================================================== --- cfe/trunk/test/Driver/openbsd.c (original) +++ cfe/trunk/test/Driver/openbsd.c Mon Nov 9 18:40:29 2015 @@ -61,8 +61,8 @@ // RUN: | FileCheck -check-prefix=CHECK-MIPS64EL-PIC %s // CHECK-AMD64-M32: as{{.*}}" "--32" // CHECK-POWERPC: as{{.*}}" "-mppc" "-many" -// CHECK-SPARC: as{{.*}}" "-32" -// CHECK-SPARC64: as{{.*}}" "-64" "-Av9a" +// CHECK-SPARC: as{{.*}}" "-32" "-Av8" +// CHECK-SPARC64: as{{.*}}" "-64" "-Av9" // CHECK-MIPS64: as{{.*}}" "-mabi" "64" "-EB" // CHECK-MIPS64-PIC: as{{.*}}" "-mabi" "64" "-EB" "-KPIC" // CHECK-MIPS64EL: as{{.*}}" "-mabi" "64" "-EL" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits