This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

[ failure notice]

The mailer is defect. It checks the "To: " area for and only the string
"". So it is not possible to write a email to a person and
the mailing list.

----- Forwarded message from -----

Return-Path: <>
Date: 1 Sep 2001 15:56:03 -0000
Subject: failure notice

Hi. This is the qmail-send program at
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.

/  Mail note rejected:  List address must be in To: or Cc: headers.

--- Below this line is a copy of the message.

Return-Path: <>
Received: (qmail 920 invoked from network); 1 Sep 2001 15:55:55 -0000
Received: from unknown (HELO (
  by with SMTP; 1 Sep 2001 15:55:55 -0000
Received: from ( [])
	by (8.12.0.Beta7/8.11.1) with ESMTP id f81Ftc6V025834;
	Sat, 1 Sep 2001 17:55:38 +0200 (MET DST)
Received: (from uucp@localhost)
	by (8.10.0/8.10.0) id f81Ftps23651;
	Sat, 1 Sep 2001 17:55:51 +0200 (MET DST)
>Received: (from pfk@localhost)
	by (8.9.3/8.9.3/SuSE Linux 8.9.3-0.1) id OAA01504
	for; Sat, 1 Sep 2001 14:16:35 +0200
Date: Sat, 1 Sep 2001 14:16:35 +0200
From: Frank Klemm <>
To: Jan Hubicka <>,
Subject: gcc, code increase with instruction reordering
Message-ID: <>
References: <> <> <>
Mime-Version: 1.0
X-Mailer: Mutt 1.0.1i
In-Reply-To: <>; from on Tue, Aug 28, 2001 at 02:25:55PM +0200
Content-Type: text/plain; charset=us-ascii

		if ( x == 0 ) {

		cmpl $0,x
		jne  lbl
	lbl:	...3

gcc3.0 tends to code this like (also with -Os):
		cmpl $0,x
		je  lbl1
	lbl2:	...3

	lbl1:	...2				\ code
		jmp lbl2			/ junks

	- code is at least 2 byte longer (2 jumps instead of 1 jump)

	- code often is 9 byte longer (distance becomes larger than
	  -128...+127 bytes, so a 'Jcc long' (6 byte) and 'JMP long' 
	  (5 byte) is needed.

	- avoid this trick with '-Os', may be also with '-O2', because speed
	  increase is very little, zero or below zero. Brnach prediction
	  seems to work very well.

	- avoid trick especially if jump distance is too long compared with
	  the nontricky code.

	- Insert the code junks as early as possible (after every jmp this
	  is possible, or before the function start). But be carefully to
	  avoid other code increases inside the function

	- if code is small and target is Pentium Pro, II, III, 4, Duron, Athlon
          often a conditional-mov works well (especially if the conditional
          expression is highly inpredictable).

	  if ( expect (x>12,0) )		// condition is seldom true
	  if ( expect (x>12,1) )		// condition is very often true

	  The current expect() syntax don't allow to describe a condition
	  which is high unpredictable so that jumps should be avoided and cmov's
	  should be used if possible.

Frank Klemm

----- End forwarded message -----

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]