This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fixes tree-loop-distribute-patterns issues


On Fri, Jun 21, 2013 at 02:43:38AM +0200, OndÅej BÃlka wrote:
> On Thu, Jun 20, 2013 at 10:33:21PM +0000, Joseph S. Myers wrote:
> > On Thu, 20 Jun 2013, Ondrej Bilka wrote:
> > 
> > > Actually you should split simple_* to separate files and compile them with
> > > O0.
> > > 
> > > Doing otherwise makes their performance dependent on gcc version and
> > > this makes results even more unreliable.
> > 
> > I expect -O0 performance to depend a lot more on GCC version than -O2.
> > 
> You expect but could you prove it? Please provide two versions of gcc
> where you get different simple-* function when compiling with -O0 -S
> 
> Versions I checked are
>  Debian 4.5.3-12
>  Debian 4.7.1-2
> gcc version 4.9.0 20130516 (experimental) (GCC)
> 
> Assemblies produced are same for following fragment:
> 
> void 
> *memset (char *s, int c, int n)
> {
>   int i;
>   for(i=0 ;i<n; i++) s[i] = c;
>   return s;
> }

On second thought I realized it was bit wierd that I got empty diff for
first two. I rechecked if they differ and they do. Question is if
difference are more than O1


3c3
< .globl memset
---
> 	.globl	memset
10d9
< 	movq	%rsp, %rbp
11a11
> 	movq	%rsp, %rbp
20,23c20,24
< 	cltq
< 	addq	-24(%rbp), %rax
< 	movl	-28(%rbp), %edx
< 	movb	%dl, (%rax)
---
> 	movslq	%eax, %rdx
> 	movq	-24(%rbp), %rax
> 	addq	%rax, %rdx
> 	movl	-28(%rbp), %eax
> 	movb	%al, (%rdx)
30c31
< 	leave
---
> 	popq	%rbp
36c37
< 	.ident	"GCC: (Debian 4.5.3-12) 4.5.3"
---
> 	.ident	"GCC: (Debian 4.7.1-2) 4.7.1"


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]