delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2003/01/18/09:21:24

To: eliz AT is DOT elta DOT co DOT il
Cc: gcc AT gcc DOT gnu DOT org, djgpp-workers AT delorie DOT com
References: <2 DOT 7 DOT 9 DOT 181SX DOT H8JVM1 AT pauzner DOT dnttm DOT ru>
<2561-Sat11Jan2003175230+0200-eliz AT is DOT elta DOT co DOT il>
Message-Id: <2.7.9.2.H8WXRK@pauzner.dnttm.ru>
From: "Leonid Pauzner" <uue AT pauzner DOT dnttm DOT ru>
Date: Sat, 18 Jan 2003 17:04:32 +0300 (MSK)
X-Mailer: dMail [Demos Mail for DOS v2.7.9]
Subject: Re: gcc 3.2.1 optimizer degradation (strlen, -O2)
MIME-Version: 1.0
Reply-To: djgpp-workers AT delorie DOT com

This is a message in MIME format. Your mail reader does not support MIME :(

--=====_dMail_2.7.9.1YSQ6.H8WXRJ_pauzner.dnttm.ru===_
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

11-Jan-2003 23:33 Marcel Cox wrote:

> 3) Except for Pentium4, GCC 3.2.1 does not inline the strlen function in
> your code as it considers the gain to be not worthwhile. You can however
> force it to do so anyway by using the option -minline-all-stringops and see
> if that makes a difference.

Apparently, gcc 3.2.1 __builtin_strlen() never inlined on Pentium 90MHz
so the following function hangs:

====== strlen3.c =========
#include <string.h>

size_t
strlen(const char *str)
{
  return __builtin_strlen(str);
}
==========================
gcc -O2 -S -c strlen3.c
====== strlen3.s =========
        .file   "strlen3.c"
        .section .text
        .p2align 4,,15
.globl _strlen
_strlen:
        pushl   %ebp
        movl    %esp, %ebp
        popl    %ebp
        jmp     _strlen
        .ident  "GCC: (GNU) 3.2.1"
==========================

Update my previous tests:
>> 2.95 do inline strlen(), while 3.2.1 is not.
>> Nevertheless I got the following results in my test:
>>
>> gcc321 -O2
>> strlen.c   20 sec
>> strlen2.c  17 sec
   strlen3.c  hangs!
>> (library)  14 sec  (yes, libc compiled with other gcc version/flags)
   strlen3.c   8 sec  (-O2 -minline-all-stringops)
   (builtin)   7 sec  (main.c was compiled with -O2 -minline-all-stringops)
>>
>> gcc295 -O2
>> strlen.c   16 sec  (main.c was compiled without -O)
>> strlen2.c  11 sec  (main.c was compiled without -O)
   strlen3.c   9 sec  (main.c was compiled without -O)
>> (builtin)   8 sec


GCC 321 assembler for the above functions attached.


--=====_dMail_2.7.9.1YSQ6.H8WXRJ_pauzner.dnttm.ru===_
Content-Type: application/octet-stream; name=len321.zip
Content-Transfer-Encoding: x-uuencode
Content-Disposition: attachment; filename=len321.zip

begin 777 len321.zip
M4$L#!!0````(``N",BZ"WU%'.P```&0````'````<G5N+F)A=$M/3E;0]3=2
MT`U6T$U6*"XIRDG-TTM6X.5*QR)AA$5&-S<S+R<S+U4W,2='%Z AT L,R\]OZ`8
MJL$8K`$`4$L#!!0````(`)@:S1ZX&:/MK0```.$````(````<W1R;&5N+F-5
MCCT+PC`41?=`_L,%EWYH6P>'4NO2 AT NB@KDY2VM<V4!))TD'%_VXB+DZ/=^ZY
MCY=&J-3]H<4P6 AT 15B'6>;U`?4=.DM*`E#!&J\^5Z..T3QWNET9%MQ&00I9PM
MA&RGN2-LC=5"#LFXXXPS(YYTLVY:/9$,6B6-13LV&I%#(6<OSH`_7/@>('H$
M3D%9(@L]`#3964MDA5_]`X%!"2<5OH8X-N$W^GEFY2/.WO[@!U!+`P04````
M"``,=3(N*^*+>WH```"E````"0```'-T<FQE;C(N8U6,30K",!"%]X'<X8&;
MI*52U[5>122.S4"(,)E24+R[B5VY>KR_[\`YI/5..!<5SLLQ7JRQIO"+KEI5
M)5%VX9F+(L2;H*N1M^9M#2"T<%$2_/6843=3PP#\@*O)C-$WVSZZ2L8X-;M%
M3 AT 37E;[WTT[\M64X#3OCTS!?4$L#!!0````(`!MU,BY+'H8Z5P```&$````)
M````<W1R;&5N,RYC4\[,2\XI34E5L"DN*<K,2]?+L./EXN4JSJQ*C2\!TB5%
M.:EY&LGY><4E"LD9B44*6D`A35ZN:EXN!86BU)+2HCR%^/BDTLR<DLR\>*AR
MD!)K7JY:D$D`4$L#!!0````(`"&",BX''KPET0```&(!```(````<W1R;&5N
M+G-=D,T DOT  AT C`0A,\EX1T:H AT DDI!'4H%X]<"'>/!M^5JPI;4.KX?'M`M'(I=G]
M,K.=7<+N7``)C.T%2%8'OD>8@=IR)2FS,%@$.BT%;R7=Q7&R]SW6"E4)>IM,
MOC<7)R?5+_,09`V5=LV@>JS+(:;X.M*I-Q*CD8R:D1Q"["*$#<HL&(NZ9OBB
M)Y`B^4UH?C/K3E=DM8EIB#B:M<=%[LSWB AT P3<EE/H1;6<K)*YT7M$;7F5?U_
M5B3CDDI_=^QAO!!O0%H2Y.?SB8;YY1K1+4M9XL[Y`5!+`P04````"``B AT C(N
M3RX AT G]@```!L`0``"0```'-T<FQE;C(N<UV004O$,!"%SU/H?P@%H0LUD%91
M>MW#7HHWS])DQS7+F(0F*_WY9K):92]AYLN;E[P!^6X)H8EI(72]-$U=@8QH
MDO5.R(1K8A#ZF>S)B8>N4X]U)4_D-8FWZU1=_11CEH9+_""X0QURL_J%ZWGM
M!)^9?/HO)C$P*9I"GEON=@S-/YDI AT T<F"6/Z0T5T1IC4S>^>ZFH:QJN#AI:'
MV76FC*PS[+#9:<C\]_+LLMN0BWC1-T\3S AT 3W:C,K2295TOJPA5VPK,H>T25H
M#OO]*-K#R^M.#+*7*N_U&U!+`P04````"``B AT C(NB80^&T0!``#;`@``"0``
M`'-T<FQE;C,N<XU2.V^#,!">C<1_L*)$(A*Q\",T8<V0!77K7/%P$RK'6(%4
M_/SZ<#!"[9#)Q_>P[SX.D:]&2;3J^KN2FI-J%0:(=++JFU9CTLNA!\"P0C47
MC44<TWT8D(MJ2X4_G2L,GD5FI>;1717:R-+8CUO[`W5G8OQ$/#U,]"$":@N*
M:I@]U0!(\0<9C86N%5ISK_B6*&?VK&[&XFR![__#"Y0+AY=HG<0X AT NNW3P>W
M9Z,K]V88Y/OL9:EX6;K(],U:63:-ZFR^V:*&884/2,E"H1U-#X(GR3$"U2BN
M AT 1S:NQ7OZ.R&J*#V$A?>CE%^3%)&A?#,%&,ONQ[R98=C.I/:LJDMNBL\06?&
M-<BF!O,T<V")-K6R:*W`59;3+QM%'$3=HW3+X(<SK5FNQV(3)A8VZ2['S6QJ
MJ7NT.I].&8[.[Q];S`DCU*[Q+U!+`0(7`!0````(``N",BZ"WU%'.P```&0`
M```'``````````$`(`````````!R=6XN8F%T4$L!`A<`%`````@`F!K-'K AT 9
MH^VM````X0````@``````````0`@````8````'-T<FQE;BYC4$L!`A<`%```
M``@`#'4R+BOBBWMZ````I0````D``````````0`@````,P$``'-T<FQE;C(N
M8U!+`0(7`!0````(`!MU,BY+'H8Z5P```&$````)``````````$`(````-0!
M``!S=')L96XS+F-02P$"%P`4````"``A AT C(N!QZ\)=$```!B`0``"```````
M```!`"````!2`@``<W1R;&5N+G-02P$"%P`4````"``B AT C(N3RX AT G]@```!L
M`0``"0`````````!`"````!)`P``<W1R;&5N,BYS4$L!`A<`%`````@`(H(R
M+HF$/AM$`0``VP(```D``````````0`@````2`0``'-T<FQE;C,N<U!+!08`
1````!P`'`'T!``"S!0``````
`
end

--=====_dMail_2.7.9.1YSQ6.H8WXRJ_pauzner.dnttm.ru===_--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019