All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiri Slaby <jslaby@suse.cz>
To: Joe Perches <joe@perches.com>,
	Arnaud POULIQUEN <arnaud.pouliquen@st.com>,
	Ohad Ben-Cohen <ohad@wizery.com>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-kernel@vger.kernel.org, linux-remoteproc@vger.kernel.org,
	Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Suman Anna <s-anna@ti.com>,
	Fabien DESSENNE <fabien.dessenne@st.com>,
	linux-stm32@st-md-mailman.stormreply.com,
	xiang xiao <xiaoxiang781216@gmail.com>
Subject: Re: [PATCH v7 2/2] tty: add rpmsg driver
Date: Thu, 26 Mar 2020 07:38:29 +0100	[thread overview]
Message-ID: <a06f559c-3507-210c-d743-765163900935@suse.cz> (raw)
In-Reply-To: <f97d9dc54178e4344512bc7986265f101f4639c6.camel@perches.com>

On 26. 03. 20, 1:01, Joe Perches wrote:
> On Wed, 2020-03-25 at 14:31 +0100, Jiri Slaby wrote:
>> The question was exactly about that: can a compiler optimize it to a
>> bare number or will strlen call remain there?
> 
> $ cat str.c
> #include <string.h>
> 
> int foo(void)
> {
> 	return strlen("abc");
> }
> 
> $ gcc -c -O2 str.c
> $ objdump -d str.o
> str.o:     file format elf64-x86-64
> 
> 
> Disassembly of section .text:
> 
> 0000000000000000 <foo>:
>    0:	f3 0f 1e fa          	endbr64 
>    4:	b8 03 00 00 00       	mov    $0x3,%eax
>    9:	c3                   	retq   

Perfect, but:
* that is userspace (different strlen).
* what about other archs -- AFAIR, i386 implements strlen in asm in the
kernel

Maybe compilers use intrinsics and only after optimizations, they put a
call to strlen?

/me digging

Yeah, even gimple already contains:
  int D.2094;

  D.2094 = 3;
  return D.2094;


That means, even -O0 should generate 3 instead of the call:
$ echo -e '#include <string.h>\nint f() { return strlen("abc"); }' | gcc
-S -x c - -o - -O0
...
f:
.LFB0:
        .cfi_startproc
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset 6, -16
        movq    %rsp, %rbp
        .cfi_def_cfa_register 6
        movl    $3, %eax
        popq    %rbp
        .cfi_def_cfa 7, 8
        ret
        .cfi_endproc


So fine, use strlen :).

thanks,
-- 
js
suse labs

  reply	other threads:[~2020-03-26  6:38 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-24 17:04 [PATCH v7 0/2] Add rpmsg tty driver Arnaud Pouliquen
2020-03-24 17:04 ` Arnaud Pouliquen
2020-03-24 17:04 ` [PATCH v7 1/2] rpmsg: core: add API to get MTU Arnaud Pouliquen
2020-03-24 17:04   ` Arnaud Pouliquen
2020-03-31 17:36   ` Mathieu Poirier
2020-04-01  6:28   ` Jiri Slaby
2020-04-01  6:29     ` Jiri Slaby
2020-04-01 11:34       ` Arnaud POULIQUEN
2020-04-01 11:34         ` Arnaud POULIQUEN
2020-03-24 17:04 ` [PATCH v7 2/2] tty: add rpmsg driver Arnaud Pouliquen
2020-03-24 17:04   ` Arnaud Pouliquen
2020-03-24 17:18   ` Greg Kroah-Hartman
2020-03-25 11:34     ` Arnaud POULIQUEN
2020-03-25 11:34       ` Arnaud POULIQUEN
2020-03-24 17:23   ` Joe Perches
2020-03-25 11:36     ` Arnaud POULIQUEN
2020-03-25 11:36       ` Arnaud POULIQUEN
2020-03-24 17:44   ` Randy Dunlap
2020-03-25  8:10     ` Jiri Slaby
2020-03-25 11:39     ` Arnaud POULIQUEN
2020-03-25 11:39       ` Arnaud POULIQUEN
2020-03-24 20:52   ` Bjorn Andersson
2020-03-24 20:52     ` Bjorn Andersson
2020-03-25 16:57     ` Arnaud POULIQUEN
2020-03-25 16:57       ` Arnaud POULIQUEN
2020-04-06 14:18       ` Arnaud POULIQUEN
2020-04-06 14:18         ` Arnaud POULIQUEN
2020-05-06  2:54       ` Bjorn Andersson
2020-05-06 10:21         ` Arnaud POULIQUEN
2020-03-25  8:45   ` Jiri Slaby
2020-03-25 13:15     ` Arnaud POULIQUEN
2020-03-25 13:15       ` Arnaud POULIQUEN
2020-03-25 13:31       ` Jiri Slaby
2020-03-26  0:01         ` Joe Perches
2020-03-26  6:38           ` Jiri Slaby [this message]
2020-03-26 10:59           ` Arnaud POULIQUEN
2020-03-26 10:59             ` Arnaud POULIQUEN
2020-03-26 12:31             ` Jiri Slaby
2020-03-26 11:40         ` Arnaud POULIQUEN
2020-03-26 11:40           ` Arnaud POULIQUEN
2020-03-26 11:45           ` Jiri Slaby
2020-04-01 18:06   ` Mathieu Poirier
2020-04-02 15:25     ` Arnaud POULIQUEN
2020-04-02 15:25       ` Arnaud POULIQUEN
2020-04-03 20:18       ` Mathieu Poirier
2020-07-15 16:06 ` [PATCH v7 0/2] Add rpmsg tty driver Arnaud POULIQUEN

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a06f559c-3507-210c-d743-765163900935@suse.cz \
    --to=jslaby@suse.cz \
    --cc=arnaud.pouliquen@st.com \
    --cc=bjorn.andersson@linaro.org \
    --cc=fabien.dessenne@st.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=joe@perches.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-remoteproc@vger.kernel.org \
    --cc=linux-stm32@st-md-mailman.stormreply.com \
    --cc=mathieu.poirier@linaro.org \
    --cc=ohad@wizery.com \
    --cc=s-anna@ti.com \
    --cc=xiaoxiang781216@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.