Re: [PATCH 0/1] vsprintf: optimize decimal conversion (again)

From: roma1390
Date: Wed Mar 28 2012 - 01:56:39 EST


On 2012.03.27 18:42, Denys Vlasenko wrote:
On Tue, Mar 27, 2012 at 2:08 PM, roma1390<roma1390@xxxxxxxxx> wrote:
On 2012.03.26 21:47, Denys Vlasenko wrote:

Please find test programs attached.

32-bit test programs were built using gcc 4.6.2
64-bit test programs were built using gcc 4.2.1
Command line: gcc --static [-m32] -O2 -Wall test_{org,new}.c

Can't compile reference for arm:
$ arm-linux-gnueabi-gcc -O2 -Wall test_org.c -o test_org
test_org.c: In function ‘put_dec’:
test_org.c:101: error: impossible constraint in ‘asm’
test_org.c:101: error: impossible constraint in ‘asm’
test_org.c:101: error: impossible constraint in ‘asm’

Please find a modified test_header.c attached.
I tested and it builds in my arm emulator.


Run on same:
2.6.32-5-kirkwood #1 Tue Jan 17 05:11:52 UTC 2012 armv5tel GNU/Linux
GCC version:
gcc version 4.4.5 (Debian 4.4.5-8), Target: arm-linux-gnueabi
Compiled with:
arm-linux-gnueabi-gcc -O2 -Wall test_{org,new}.c -o test_{org,new}


run default priority on almost idle machine:

./test_org
Conversions per second: 8:4716000 123:3896000 123456:2756000 12345678:2412000 123456789:2380000 2^32:2348000 2^64:1400000
Conversions per second: 8:4556000 123:3892000 123456:2760000 12345678:2496000 123456789:2384000 2^32:2264000 2^64:1400000
Conversions per second: 8:4716000 123:3896000 123456:2664000 12345678:2496000 123456789:2388000 2^32:2348000 2^64:1400000
Conversions per second: 8:4716000 123:3892000 123456:2760000 12345678:2496000 123456789:2292000 2^32:2348000 2^64:1400000
./test_org
Conversions per second: 8:4716000 123:3748000 123456:2760000 12345678:2496000 123456789:2388000 2^32:2348000 2^64:1348000
Conversions per second: 8:4716000 123:3896000 123456:2756000 12345678:2408000 123456789:2384000 2^32:2348000 2^64:1400000
Conversions per second: 8:4540000 123:3896000 123456:2648000 12345678:2496000 123456789:2388000 2^32:2268000 2^64:1400000
Conversions per second: 8:4716000 123:3888000 123456:2664000 12345678:2496000 123456789:2388000 2^32:2344000 2^64:1400000

./test_new
Conversions per second: 8:5496000 123:4564000 123456:3536000 12345678:3408000 123456789:1168000 2^32:976000 2^64:532000
Conversions per second: 8:5524000 123:4568000 123456:3692000 12345678:3404000 123456789:1132000 2^32:972000 2^64:532000
Conversions per second: 8:5528000 123:4404000 123456:3684000 12345678:3408000 123456789:1168000 2^32:976000 2^64:516000
Conversions per second: 8:5528000 123:4568000 123456:3692000 12345678:3288000 123456789:1168000 2^32:976000 2^64:532000
./test_new
Conversions per second: 8:5524000 123:4416000 123456:3688000 12345678:3400000 123456789:1172000 2^32:972000 2^64:516000
Conversions per second: 8:5520000 123:4568000 123456:3692000 12345678:3276000 123456789:1168000 2^32:976000 2^64:532000
Conversions per second: 8:5344000 123:4552000 123456:3692000 12345678:3404000 123456789:1168000 2^32:944000 2^64:532000
Conversions per second: 8:5528000 123:4568000 123456:3556000 12345678:3404000 123456789:1168000 2^32:976000 2^64:532000

I will run the long running correctness test, and post results later. But this can take a while...

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/