From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7926 invoked by alias); 28 Oct 2007 20:43:12 -0000 Received: (qmail 7152 invoked by uid 48); 28 Oct 2007 20:42:59 -0000 Date: Sun, 28 Oct 2007 20:43:00 -0000 Message-ID: <20071028204259.7151.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug rtl-optimization/33922] [4.3 Regression] slow compilation on ia64 (postreload scheduling) In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "jakub at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2007-10/txt/msg02523.txt.bz2 ------- Comment #19 from jakub at gcc dot gnu dot org 2007-10-28 20:42 ------- Another trivial patch that improves speed is: --- ia64.c (revision 129700) +++ ia64.c (working copy) @@ -5310,11 +5310,11 @@ ia64_safe_type (rtx insn) struct reg_write_state { - unsigned int write_count : 2; - unsigned int first_pred : 16; - unsigned int written_by_fp : 1; - unsigned int written_by_and : 1; - unsigned int written_by_or : 1; + unsigned short write_count : 2; + unsigned short first_pred : 10; + unsigned short written_by_fp : 1; + unsigned short written_by_and : 1; + unsigned short written_by_or : 1; }; /* Cumulative info for the current instruction group. */ which cuts the size of rws_sum and rws_saved arrays into half (1604 to 802 bytes) and with both patches in I get: scheduling 2 : 6.86 (82%) usr 0.01 (50%) sys 6.87 (82%) wall 1970 kB (15%) ggc or 31% speedup in wall time both patches together. first_pred is either 0 or PR_REG(0) through PR_REG(63), so it certainly fits into 10 bit bitfield. If needed it would fit even into 6 bit (as when pred == 0, write_count will be already 2 and we could subtract PR_REG(0) from it), but that's still too big to squeeze it into 1 byte per register. Even when this bug is fixed for real, both changes IMHO make sense anyway (the first patch could perhaps use some cleanup, nice macros to hide it or something). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33922