[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [avr-gcc-list] GCC-AVR Register optimisations
From: |
Dmitry K. |
Subject: |
Re: [avr-gcc-list] GCC-AVR Register optimisations |
Date: |
Thu, 10 Jan 2008 17:23:11 +1000 |
User-agent: |
KMail/1.5 |
Very interesting!
I will try this new order with Avr-libc's C-functions
(probably at the nearest week-end).
Today (with default order) the results are:
AVR: at90s8515__________________________ atmega8____________________________
GCC: 3.3.6 3.4.6 4.0.4 4.1.2 4.2.2 4.3.X 3.3.6 3.4.6 4.0.4 4.1.2 4.2.2 4.3.X
-------------------------------------------------------------------------------
bsearch("z",s,sizeof(s),1,cmp)
Flh: 272 270 266 266 266 268 214 212 208 208 208 204
Stk: 16 16 16 16 16 16 16 16 16 16 16 16
Tim: 526 533 530 530 530 530 327 334 331 331 331 327
-------------------------------------------------------------------------------
dtostre(1.2345,s,6,0)
Flh: 1000 998 1104 1194 1184 1174 932 930 1020 1094 1088 1086
Stk: 15 15 15 17 17 17 15 15 15 17 17 17
Tim: 1197 1197 1285 1313 1313 1290 1058 1058 1119 1152 1152 1143
-------------------------------------------------------------------------------
dtostrf(1.2345,15,6,s)
Flh: 1666 1688 1696 1668 1676 1690 1512 1528 1568 1544 1548 1566
Stk: 35 38 38 38 36 39 35 38 38 38 36 39
Tim: 1670 1621 1667 1607 1608 1618 1480 1437 1493 1444 1443 1456
-------------------------------------------------------------------------------
free(p)
Flh: 540 548 544 544 556 568 486 494 500 500 508 512
Stk: 4 4 4 4 4 4 4 4 4 4 4 4
Tim: 222 229 229 229 231 229 201 208 211 211 212 210
-------------------------------------------------------------------------------
malloc(1)
Flh: 540 548 544 544 556 568 486 494 500 500 508 512
Stk: 2 4 4 4 4 4 2 4 4 4 4 4
Tim: 186 193 195 195 197 195 167 174 178 178 179 177
-------------------------------------------------------------------------------
qsort(s,sizeof(s),1,cmp)
Flh: 1314 1302 1220 1222 1242 1496 1086 1078 994 996 1008 1268
Stk: 36 36 36 36 38 40 36 36 36 36 38 40
Tim: 21915 21896 20182 20474 20914 21091 16976 16964 16002 16294 16678 16926
-------------------------------------------------------------------------------
rand()
Flh: 548 548 498 492 508 498 508 508 478 480 484 456
Stk: 18 18 18 18 18 18 18 18 18 18 18 18
Tim: 1505 1505 1484 1484 1488 1484 1497 1497 1482 1482 1484 1475
-------------------------------------------------------------------------------
realloc((void*)0,1)
Flh: 1162 1170 1156 1130 1156 1166 1036 1046 1044 1032 1046 1046
Stk: 18 20 20 18 20 22 18 20 20 18 20 22
Tim: 293 300 302 294 304 311 269 276 280 272 281 288
-------------------------------------------------------------------------------
sprintf_min(s,"%d",12345)
Flh: 1306 1272 1292 1210 1216 1274 1158 1138 1160 1082 1086 1142
Stk: 55 55 54 53 59 54 55 55 54 53 59 54
Tim: 1847 1841 1805 1811 1846 1801 1706 1703 1673 1678 1711 1666
-------------------------------------------------------------------------------
sprintf(s,"%d",12345)
Flh: 1720 1696 1704 1642 1674 1608 1534 1514 1524 1462 1498 1422
Stk: 54 54 57 57 58 57 54 54 57 57 58 57
Tim: 1633 1627 1639 1618 1610 1623 1545 1543 1555 1536 1528 1537
-------------------------------------------------------------------------------
sprintf_flt(s,"%e",1.2345)
Flh: 3422 3372 3300 3262 3334 3320 3130 3088 3006 2968 3040 2966
Stk: 61 61 63 64 66 66 61 61 63 64 66 67
Tim: 2503 2496 2500 2482 2513 2492 2281 2277 2282 2263 2297 2302
-------------------------------------------------------------------------------
sscanf_min("12345","%d",&i)
Flh: 1468 1466 1486 1484 1498 1504 1334 1334 1350 1352 1360 1364
Stk: 49 49 53 53 59 55 49 49 53 53 59 55
Tim: 1681 1672 1640 1638 1643 1685 1371 1367 1359 1357 1356 1392
-------------------------------------------------------------------------------
sscanf("12345","%d",&i)
Flh: 1792 1784 1908 1874 1848 1876 1624 1616 1700 1674 1662 1668
Stk: 50 50 54 54 61 56 50 50 54 54 61 56
Tim: 1715 1736 1714 1694 1749 1751 1413 1434 1432 1417 1461 1463
-------------------------------------------------------------------------------
sscanf_flt("1.2345","%e",&x)
Flh: 4134 4094 4190 4114 4220 4472 3802 3762 3808 3772 3856 4086
Stk: 124 124 126 128 140 132 124 124 126 128 140 132
Tim: 3026 3025 3023 3043 3104 3165 2661 2661 2662 2683 2729 2778
-------------------------------------------------------------------------------
strtod("1.2345",&p)
Flh: 1546 1532 1664 1624 1624 1902 1454 1442 1538 1514 1500 1760
Stk: 20 20 20 22 22 20 20 20 20 22 22 20
Tim: 1244 1242 1266 1268 1266 1294 990 989 1013 1017 1005 1032
-------------------------------------------------------------------------------
strtol("12345",&p,0)
Flh: 810 844 882 892 942 972 764 774 744 806 808 752
Stk: 20 20 20 21 29 27 20 20 21 21 21 21
Tim: 979 1003 956 981 1074 1035 716 714 671 711 722 681
-------------------------------------------------------------------------------
strtoul("12345",&p,0)
Flh: 776 778 868 838 832 870 730 728 824 798 782 760
Stk: 20 20 25 25 29 27 20 20 25 25 25 21
Tim: 967 967 1015 999 1023 1019 704 695 762 748 748 701
===============================================================================
Summary
Flh: 24016 23910 24322 24000 24332 25226 21790 21686 21966 21782 21990 22570
Stk: 597 604 623 628 676 654 597 604 624 628 664 643
Tim: 43109 43083 41432 41660 42413 42613 35362 35331 34505 34774 35317 35554
End of list
- [avr-gcc-list] Tablejumps - needless run time conversion to byte address, Andrew Hutchinson, 2008/01/04
- RE: [avr-gcc-list] GCC-AVR Register optimisations, Weddington, Eric, 2008/01/10
- [avr-gcc-list] Tip: handling volatile operands, andrewhutchinson, 2008/01/10
- Re: [avr-gcc-list] Tip: handling volatile operands, David Kelly, 2008/01/10
- Re: [avr-gcc-list] Tip: handling volatile operands, Andrew Hutchinson, 2008/01/10