FreeBSD 7.O compiled code is very slow

2009-02-18 Thread Kailash Kailash
I am using FreeBSD 7.0 in 64 BIT mode. Same code compiled on BSD 7.0 runs
50% speed (as expected by CPU and code architecture) compared to BSD 6.2.
Here is one real code with binary output. On 3.0 GHz Woodcrest processor, I
am able to copy from one cache to another cache at the speed of
24Gbytes/second verses 12 Gbytes/second. Any help is appreciated.

Thanks,

Kailash

 

Source-code:

#define BACKWARD_MEMCOPY_WITH_TYPE(dp, sp, len, type)
BACKWARD_MEMCOPY((type*)(dp), (const type*)(sp),
((len)+(sizeof(type)-1))/sizeof(type))

 

#define BACKWARD_MEMCOPY(dp, sp, len) \

do { \

smwbits __len = len;/* must be signed value */ \

while (--__len = 0) \

(dp)[__len] = (sp)[__len]; \

} while (0)

 

BSD 6.2 code 

0x004353b2 smcli_memory_copy_performance+434: mov
0x8(%rbp,%rdx,8),%rax

0x004353b7 smcli_memory_copy_performance+439: mov
%rax,0x48(%r12,%rdx,8)

0x004353bc smcli_memory_copy_performance+444: dec%rdx

0x004353bf smcli_memory_copy_performance+447: jns0x4353b2
smcli_memory_copy_performance+434

 

BSD 7.0 code

0x0040cb80 smcli_memory_copy_performance+272:mov
0xfff8(%rsi),%rax

0x0040cb84 smcli_memory_copy_performance+276:mov
%rax,0xfff8(%rcx)

0x0040cb88 smcli_memory_copy_performance+280:sub
$0x8,%rsi

0x0040cb8c smcli_memory_copy_performance+284:sub
$0x8,%rcx

0x0040cb90 smcli_memory_copy_performance+288:sub
$0x1,%rdx

0x0040cb94 smcli_memory_copy_performance+292:jns
0x40cb80 smcli_memory_copy_performance2+272

 

___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org


RE: FreeBSD 7.O compiled code is very slow

2009-02-18 Thread Kailash Kailash
Can old version of GCC used with BSD 7.0 without facing any compatibility
problem?
Thanks,
Kailash

-Original Message-
From: Wojciech Puchar [mailto:woj...@wojtek.tensor.gdynia.pl] 
Sent: Wednesday, February 18, 2009 1:46 PM
To: Kailash Kailash
Cc: freebsd-questions@freebsd.org
Subject: Re: FreeBSD 7.O compiled code is very slow

looks like they improved gcc. you can install older from ports.

On Wed, 18 Feb 2009, Kailash Kailash wrote:

 I am using FreeBSD 7.0 in 64 BIT mode. Same code compiled on BSD 7.0 runs
 50% speed (as expected by CPU and code architecture) compared to BSD 6.2.
 Here is one real code with binary output. On 3.0 GHz Woodcrest processor,
I
 am able to copy from one cache to another cache at the speed of
 24Gbytes/second verses 12 Gbytes/second. Any help is appreciated.

 Thanks,

 Kailash



 Source-code:

 #define BACKWARD_MEMCOPY_WITH_TYPE(dp, sp, len, type)
 BACKWARD_MEMCOPY((type*)(dp), (const type*)(sp),
 ((len)+(sizeof(type)-1))/sizeof(type))



 #define BACKWARD_MEMCOPY(dp, sp, len) \

 do { \

smwbits __len = len;/* must be signed value */ \

while (--__len = 0) \

(dp)[__len] = (sp)[__len]; \

 } while (0)



 BSD 6.2 code

 0x004353b2 smcli_memory_copy_performance+434: mov
 0x8(%rbp,%rdx,8),%rax

 0x004353b7 smcli_memory_copy_performance+439: mov
 %rax,0x48(%r12,%rdx,8)

 0x004353bc smcli_memory_copy_performance+444: dec%rdx

 0x004353bf smcli_memory_copy_performance+447: jns0x4353b2
 smcli_memory_copy_performance+434



 BSD 7.0 code

 0x0040cb80 smcli_memory_copy_performance+272:mov
 0xfff8(%rsi),%rax

 0x0040cb84 smcli_memory_copy_performance+276:mov
 %rax,0xfff8(%rcx)

 0x0040cb88 smcli_memory_copy_performance+280:sub
 $0x8,%rsi

 0x0040cb8c smcli_memory_copy_performance+284:sub
 $0x8,%rcx

 0x0040cb90 smcli_memory_copy_performance+288:sub
 $0x1,%rdx

 0x0040cb94 smcli_memory_copy_performance+292:jns
 0x40cb80 smcli_memory_copy_performance2+272



 ___
 freebsd-questions@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/freebsd-questions
 To unsubscribe, send any mail to
freebsd-questions-unsubscr...@freebsd.org



___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to freebsd-questions-unsubscr...@freebsd.org