From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21630 invoked by alias); 4 Sep 2008 18:50:18 -0000 Received: (qmail 21338 invoked by alias); 4 Sep 2008 18:48:57 -0000 Date: Thu, 04 Sep 2008 18:50:00 -0000 Message-ID: <20080904184857.21337.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug middle-end/37243] [4.4 Regression] IRA causes wrong code generation In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "rsandifo 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: 2008-09/txt/msg00567.txt.bz2 ------- Comment #31 from rsandifo at gcc dot gnu dot org 2008-09-04 18:48 ------- Subject: Bug 37243 Author: rsandifo Date: Thu Sep 4 18:47:35 2008 New Revision: 139993 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=139993 Log: gcc/ PR middle-end/37243 * ira-build.c (form_loop_tree): Reverse BB walk. (create_bb_allocnos): Likewise. * ira-lives.c (make_regno_born_and_dead, regs_set): Delete. (mark_reg_store): Rename to... (mark_ref_live): ...this and take a df_ref argument instead of note_stores arguments. Assert that we have a register. (mark_reg_clobber): Delete. (def_conflicts_with_inputs_p): New function. (mark_reg_conflicts): Delete. (mark_reg_death): Rename to... (mark_ref_dead): ...this and take a df_ref argument instead of a register. Assert that we have a register. (process_bb_node_lives): Hoist frequency calculation out of instruction walk. Convert from a forwards scan to a backwards scan. Use DF_REF_USES and DF_REF_DEFS instead of register notes and note_stores. Remove EH_RETURN_DATA_REGNO and regs_set handling. (create_allocno_live_ranges): Don't create regs_set. Modified: trunk/gcc/ChangeLog trunk/gcc/ira-build.c trunk/gcc/ira-lives.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37243