[llvm] r322223 - TargetLoweringBase: The ios simulator has no bzero function.
Hans Wennborg via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 17 08:26:03 PST 2018
Merged to 6.0 in r322681.
On Wed, Jan 10, 2018 at 9:49 PM, Matthias Braun via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> Author: matze
> Date: Wed Jan 10 12:49:57 2018
> New Revision: 322223
>
> URL: http://llvm.org/viewvc/llvm-project?rev=322223&view=rev
> Log:
> TargetLoweringBase: The ios simulator has no bzero function.
>
> Make sure I really get back to the beahvior before my rewrite in r321035
> which turned out not to be completely NFC as I changed the behavior for
> the ios simulator environment.
>
> Modified:
> llvm/trunk/lib/CodeGen/TargetLoweringBase.cpp
> llvm/trunk/test/CodeGen/X86/darwin-bzero.ll
>
> Modified: llvm/trunk/lib/CodeGen/TargetLoweringBase.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/TargetLoweringBase.cpp?rev=322223&r1=322222&r2=322223&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/TargetLoweringBase.cpp (original)
> +++ llvm/trunk/lib/CodeGen/TargetLoweringBase.cpp Wed Jan 10 12:49:57 2018
> @@ -132,9 +132,18 @@ void TargetLoweringBase::InitLibcalls(co
> setLibcallName(RTLIB::FPEXT_F16_F32, "__extendhfsf2");
> setLibcallName(RTLIB::FPROUND_F32_F16, "__truncsfhf2");
>
> - // Darwin 10 and higher has an optimized __bzero.
> - if (!TT.isMacOSX() || !TT.isMacOSXVersionLT(10, 6) || TT.isArch64Bit()) {
> - setLibcallName(RTLIB::BZERO, TT.isAArch64() ? "bzero" : "__bzero");
> + // Some darwins have an optimized __bzero/bzero function.
> + switch (TT.getArch()) {
> + case Triple::x86:
> + case Triple::x86_64:
> + if (TT.isMacOSX() && !TT.isMacOSXVersionLT(10, 6))
> + setLibcallName(RTLIB::BZERO, "__bzero");
> + break;
> + case Triple::aarch64:
> + setLibcallName(RTLIB::BZERO, "bzero");
> + break;
> + default:
> + break;
> }
>
> if (darwinHasSinCos(TT)) {
>
> Modified: llvm/trunk/test/CodeGen/X86/darwin-bzero.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/darwin-bzero.ll?rev=322223&r1=322222&r2=322223&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/darwin-bzero.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/darwin-bzero.ll Wed Jan 10 12:49:57 2018
> @@ -1,10 +1,13 @@
> -; RUN: llc < %s -mtriple=i386-apple-darwin10 | FileCheck %s
> -; RUN: llc < %s -mtriple=x86_64-apple-darwin10 | FileCheck %s
> +; RUN: llc < %s -mtriple=i386-apple-darwin10 | FileCheck -check-prefixes=CHECK,BZERO %s
> +; RUN: llc < %s -mtriple=x86_64-apple-darwin10 | FileCheck -check-prefixes=CHECK,BZERO %s
> +; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck -check-prefixes=CHECK,NOBZERO %s
> +; RUN: llc < %s -mtriple=x86_64-apple-ios10.0-simulator | FileCheck -check-prefixes=CHECK,NOBZERO %s
>
> declare void @llvm.memset.p0i8.i32(i8* nocapture, i8, i32, i32, i1) nounwind
>
> ; CHECK-LABEL: foo:
> -; CHECK: {{calll|callq}} ___bzero
> +; BZERO: {{calll|callq}} ___bzero
> +; NOBZERO-NOT: bzero
> define void @foo(i8* %p, i32 %len) {
> call void @llvm.memset.p0i8.i32(i8* %p, i8 0, i32 %len, i32 1, i1 false)
> ret void
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list