From: | Ranier Vilela <ranier(dot)vf(at)gmail(dot)com> |
---|---|
To: | David Rowley <dgrowleyml(at)gmail(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: [PATCH] Small optimization across postgres (remove strlen duplicate usage) |
Date: | 2020-04-20 02:57:59 |
Message-ID: | CAEudQArL0oaM=Rx9UetpLTEQ=yeT0DEAKSqHibhDbFAacbQh+w@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Em dom., 19 de abr. de 2020 às 22:00, David Rowley <dgrowleyml(at)gmail(dot)com>
escreveu:
> On Mon, 20 Apr 2020 at 11:24, Ranier Vilela <ranier(dot)vf(at)gmail(dot)com> wrote:
> > I tried: https://godbolt.org with:
> >
> > -O2:
> >
> > f1:
> > int main (int argv, char **argc)
> > {
> > return strlen(argc[0]) == 0;
> > }
> >
> > f1: Assembly
> > main: # @main
> > mov rcx, qword ptr [rsi]
> > xor eax, eax
> > cmp byte ptr [rcx], 0
> > sete al
> > ret
> >
> > f2:
> > int main (int argv, char **argc)
> > {
> > return argc[0] == '\0';
> > }
> >
> > f2: Assembly
> >
> > main: # @main
> > xor eax, eax
> > cmp qword ptr [rsi], 0
> > sete al
> > ret
> >
> > For me clearly str [0] == '\ 0', wins.
>
> I think you'd want to use argc[0][0] == '\0' or *argc[0] == '\0'.
> Otherwise you appear just to be checking if the first element in the
> argc pointer array is set to NULL, which is certainly not the same as
> an empty string.
>
I guess you're right.
x86-64 clang (trunk) -O2
f1:
int cmp(const char * name)
{
return strlen(name) == 0;
}
cmp: # @cmp
xor eax, eax
cmp byte ptr [rdi], 0
sete al
ret
f2:
int cmp(const char * name)
{
return name[0] == '\0';
}
cmp: # @cmp
xor eax, eax
cmp byte ptr [rdi], 0
sete al
ret
Is the same result in assembly.
Well, it doesn't matter to me, I will continue to use str[0] == '\0'.
Thanks for take part.
regards,
Ranier VIlela
From | Date | Subject | |
---|---|---|---|
Next Message | Dilip Kumar | 2020-04-20 04:10:28 | Re: fixing old_snapshot_threshold's time->xid mapping |
Previous Message | Amit Kapila | 2020-04-20 02:48:22 | Re: where should I stick that backup? |