Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Sun, 12 Jun 2005 11:33:08 +0200 From: Corinna Vinschen To: cygwin AT cygwin DOT com Subject: Re: gcc 3.4.4 optimization problem (was Re: Negative stats from rsync with 20050610 snapshot) Message-ID: <20050612093308.GF6568@calimero.vinschen.de> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <42AA611A DOT 2050605 AT acm DOT org> <20050611145713 DOT GA11065 AT calimero DOT vinschen DOT de> <42AB16FA DOT 4000701 AT familiehaase DOT de> <20050612082206 DOT GB6568 AT calimero DOT vinschen DOT de> <42ABFED3 DOT 5030009 AT familiehaase DOT de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <42ABFED3.5030009@familiehaase.de> User-Agent: Mutt/1.4.2i On Jun 12 11:22, Gerrit P. Haase wrote: > Corinna Vinschen wrote: > >I'm wondering if we should do that or not. I'm not a gcc person, so I'm > >not exactly the right one to make such a decision. It's just interesting > >that the strict-aliasing problem Chris found, is no problem in gcc 4 > >anymore, apparently. > > I just turn off defaulting to unit-at-a-time when you specify -O2. > You may always specify -funit-at-a-time to see if code compiles ok > with this flag. > > According to the introduction of the 3.4.4 optimization docs, this > flag is optional anyway: > > "Using the -funit-at-a-time flag will allow the compiler to consider > information gained from later functions in the file when compiling a > function. Compiling multiple files at once to a single output file > (and using -funit-at-a-time) will allow the compiler to use > information gained from all of the files when compiling each of > them." > > Where in 4.0.0 is explictly stated even in the introduction that it is > defaulty for -O2 and above: > > "The compiler performs optimization based on the knowledge it has of the > program. Optimization levels -O2 and above, in particular, enable > unit-at-a-time mode, which allows the compiler to consider information > gained from later functions in the file when compiling a function. > Compiling multiple files at once to a single output file in > unit-at-a-time mode allows the compiler to use information gained from > all of the files when compiling each of them." I see. It seems the 3.4.x code is just assuming a bit too much when examining functions, whereas the 4.x implementation is a bit more careful. Thanks, Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader mailto:cygwin AT cygwin DOT com Red Hat, Inc. -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/