delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2003/01/11/12:58:59

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.SBA.H8K8TU@pauzner.dnttm.ru>
From: "Leonid Pauzner" <uue AT pauzner DOT dnttm DOT ru>
Date: Sat, 11 Jan 2003 20:34:42 +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.SB8.H8K8TU_pauzner.dnttm.ru===_
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

11-Jan-2003 17:52 Eli Zaretskii wrote:
>> From: "Leonid Pauzner" <uue AT pauzner DOT dnttm DOT ru>
>> Date: Sat, 11 Jan 2003 15:49:13 +0300 (MSK)
>>
>> It turns out that the libc strlen() function (compiled with -O2)
>> became nearly 2 times slower when I switched from gcc 2.95.3 to gcc 3.2.1
>> on a Pentium machine.

> Are you sure you get the library strlen?  IIRC, GCC provides its own
> inline versions of some functions, and I think strlen is one of them.

> Examining the code (use the -S switch to GCC to produce it) should
> show you whether my guess was true.

Sure, there is a "call _strlen" line in the assembler code,
and I made the test program by calling
  "gcc -o strlen.exe main.o strlen.o"

This is a DJGPP environment.

The key point in my original posting was the certain simple loop
which happens to be optimized better with the old version of the compiler.
Generated assembler attached.

> You could use the -fno-builtin switch to force GCC to call the
> (non-inline) library version of strlen.


--=====_dMail_2.7.9.SB8.H8K8TU_pauzner.dnttm.ru===_
Content-Type: application/octet-stream; name=strlen.zip
Content-Transfer-Encoding: x-uuencode
Content-Disposition: attachment; filename=strlen.zip
Content-Description: C sourses and generated assembler

begin 777 strlen.zip
M4$L#!!0````(`$:B*RX^'2Y1\0```!4"```)``D`<W1R;&5N+2YS550%``'4
M42`^A5%K;L,@#/Z-3X&J5>HDBB::MA-GR!U00UB6B8"5QY3C#U33;:VF_0%L
M?P_;,/G6>\<VTSQZ%_;2;J"S5AD;!TR%5FHPQG1AN66,U2!GM\[`)*J+[[O`
M%<C.Q\9S<]4!NC4P7*9WS[>N06!#_,S/"<4UGI9$>5*5R#E@=L`4OHC772X_
M`_L(CM<'8&L<,^^RBGRD_("\5C_\*R'.4!^278C%AU2(0M9)8E\5^3MZI0E6
M$$1-;36YK5T.2U<GZN+X('/64)^25!_LMQ2AJP?T\0_3NQ'LKQ&VKEUI>[E$
M,=7;?[:D]`W:(&T>(Y8_&MT,7U!+`P04````"`"8&LT>)6]W3:,```#3````
M"``)`'-T<FQE;BYC550%``'0R]PO58VQ#H(P&(3W_RDN<6E!`0<'@[A`8G10
M5R=#X`>:D-:T95#CNUL2%\?[OKM<&J$TCZ=5_>`A2HGU=KM!=4+%H[&*EW#,
M*"_7V_%\2`+OC$7+OE:C0Y320NEFG%K&SGFK=)\,>R*G7GSW%,C(6C1&.X]F
MJ"VB@"2]"?B#.06B DOT HB AT 413(9,B`93]9C2P/:;X5#@5")9\GB&,G9_-KN=5L
MZ$/T!5!+`P04````"`!*HBLNEXAQ[.@```#4`0``"``)`'-T<FQE;BYS550%
M``'<42`^?5'+:L,P$#SO?H4P+3B0B/H1"+[FD(OHK>?BQS9UD641*4&?'ZF6
MW-*6GJ3=F=F9E8"_C9(@,_8B2?$^0^"&>CO.BG%+SB(_R[F3['5A8#P;!'TU
M[Q(>J=,(TWP+5Z.W;&F8:R?AX1!*X\M^TKY\VK)#'O`-PH<B$&54!F3W!4T:
M1(&B;"(<D3"L=:M9Z[RHCB)1)7)J);:W[CX-\E`GYWVTJ5'LO5)2^ULYJE["
MJ AT KL"D7]7ZCO$P877V%)NC1B],']M4MZ`%&LN_PP\3%OA'`AZ[]I'$A9R$['
M8\/RT_/+AE6\Y$6&=U!+`P04````"`#8H2LN6/)+F^8```#/`0``"@`)`'-T
M<FQE;C(M+G-55`4``0A1(#YED$%NPR`01=?,*5"D2JGDLB!.4G$&WP$93%U7
M&)#!D8\?QJ9N5*^8^1_-FS^$?0W6D%-,DS6.?S!]@EYK+K4?0W8Z)D!*V;MY
M5Z06P))9$A`6>&N'WE$.K+=>62JW05!>`23,\=O2-Z,"D-$_L(RA>ND_S]B\
M9ZE;@"03$_[IEB+\.$.;"Y#%3ZBWJ+>HCX$V_&6'NJKNT%PRTOEPT&NQXA0]
MX]A,:RV0P>F-M7$5S>KFK-1;H5P/TVZB6/7!NHI#+ERWH+`L5U AT 3ZMS'6>W)
M])^O_R5MN-@]A1>,.67PX?>XDTGP!%!+`P04````"`"H=BLNO("J!G,```"8
M````"0`)`'-T<FQE;C(N8U54!0`!K`4@/E6+00K",!!%]W.*#VZ2EDI=QWH5
MD71L!D*$3$I!\>Z DOT 70 AT NWW__':3$O,Z,L[8J93FF"Y'*DZ^-;,E<7'P4;8CI
M5M'9Y.E%0.5%M''%G\4$>P2R@]SAC">,WN@;M+46C,%H2Y(9KM.^]X%^3H?3
ML.=OH@]02P,$%`````@`PJ$K+B9&<#OA````J@$```D`"0!S=')L96XR+G-5
M5`4``=Q0(#YMD$&/PB`0A<\SOX(T:U(3);;U8'KUX(5XV[,I=':MH90(FOY\
M2XM5-WMB>-\;Y AT W`?QI-D#A_U61RKA($[DCYIC.,>^H]\E_=2<U.DP7C62+8
MFSMK6)"T"&UW#Z6S*S8)[B8U?.W"U3WY+@UL&;2JGWNJ?L76$2&HU AT Y]FW?I
M8 AT A$'OTCVLZHM2`R%/D0QW0615%&W_IM6#T-DY"&.DB51FB,>MD0/#DO82`1
MCU.+?UX+T<?M_F AT UJ6F=S\V>644V1]M^-FJJ[H1P)3_\?5.3\9`<]ON2I8?C
M]Y(5/.=9@@]02P,$%`````@`;G0K+G\B/`'G````?@$```8`"0!M86EN+F-5
M5`4``8`!(#Y5CL%NPR`01.]\Q32]V&[=..K1=?[%=8$%$ZRN0585Y=\+MM.H
M2+`P^YC99^,'%[\D/N;`QNLW DOT  AT MA?,"E-QY%*:X"&"8_!PS4<X6$H4L:<+#$
MBC@:2<I$R614)):&E#;$1E,ZE::1K:31D?L>+U8NG\J.2H<?LI8T+[U\'P]M
M\LN93GIT.2%=BE3*O\8K6,[W5X9.35ZM2)*:&$6;U#.:5.JZQ'4=T"4N6]8X
MM:NPD'$2A<-3A^9.(5O_BWUQ90L<J[VQ63A4QYU_^.:AL*_$ARD.M/YZL'6]
M9=_$MEF&R#Y-*FY"_`)02P$"%P`4````"`!&HBLN/ATN4?$````5`@``"0`)
M```````!`"``````````<W1R;&5N+2YS550%``'442`^4$L!`A<`%`````@`
MF!K-'B5O=TVC````TP````@`"0```````0`@````(0$``'-T<FQE;BYC550%
M``'0R]PO4$L!`A<`%`````@`2J(K+I>(<>SH````U`$```@`"0```````0`@
M````\P$``'-T<FQE;BYS550%``'<42`^4$L!`A<`%`````@`V*$K+ECR2YOF
M````SP$```H`"0```````0`@````"@,``'-T<FQE;C(M+G-55`4``0A1(#Y0
M2P$"%P`4````"`"H=BLNO("J!G,```"8````"0`)```````!`"`````A!```
M<W1R;&5N,BYC550%``&L!2`^4$L!`A<`%`````@`PJ$K+B9&<#OA````J@$`
M``D`"0```````0`@````Q`0``'-T<FQE;C(N<U54!0`!W%`@/E!+`0(7`!0`
M```(`&YT*RY_(CP!YP```'X!```&``D```````$`(````-4%``!M86EN+F-5
>5`4``8`!(#Y02P4&``````<`!P"\`0``Z08`````
`
end

--=====_dMail_2.7.9.SB8.H8K8TU_pauzner.dnttm.ru===_--

- Raw text -


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