From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25946 invoked by alias); 8 Nov 2004 20:04:58 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 25891 invoked from network); 8 Nov 2004 20:04:51 -0000 Received: from unknown (HELO atrey.karlin.mff.cuni.cz) (195.113.31.123) by sourceware.org with SMTP; 8 Nov 2004 20:04:51 -0000 Received: by atrey.karlin.mff.cuni.cz (Postfix, from userid 29025) id B7DEB4B42F9; Mon, 8 Nov 2004 21:04:50 +0100 (CET) Date: Mon, 08 Nov 2004 20:08:00 -0000 From: Zdenek Dvorak To: Richard Henderson , gcc-patches@gcc.gnu.org Subject: Re: [patch] Speed up ivopts Message-ID: <20041108200450.GA18515@atrey.karlin.mff.cuni.cz> References: <20041106205353.GA5351@atrey.karlin.mff.cuni.cz> <20041108191039.GF3278@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20041108191039.GF3278@redhat.com> User-Agent: Mutt/1.5.6i X-SW-Source: 2004-11/txt/msg00638.txt.bz2 Hello, > On Sat, Nov 06, 2004 at 09:53:53PM +0100, Zdenek Dvorak wrote: > > ! static const unsigned nzb_tab[] = > > This is not ok. At minimum you can put this out of line. But as for > how to use __builtin_ctz, see the use of __builtin_clz in toplev.h. > > > + /* Advance to the next nonzero bit in the intersection of > > + complemented bitmaps. We will have already advanced past the just > > + iterated bit. */ > > + > > + static inline bool > > + bmp_iter_and_compl (bitmap_iterator *bi, unsigned *bit_no) > > + { > > + if (bi->bits) > > + { > > + bmp_iter_advance (bi, bit_no); > > + return true; > > + } > > + return bmp_iter_and_compl_1 (bi, bit_no); > > With the bits-in-word part factored out and inlined, does it make > sense to move bmp_iter_and_compl_1 (etc) out of line? I do not think so. Unless these functions are fully inlined, sra won't decompose the iterators and we are going to lose a lot on compile time performace (or do you mean something else by "putting out of line"? Zdenek