From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4937 invoked by alias); 29 Aug 2003 00:09:18 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 4925 invoked by uid 48); 29 Aug 2003 00:09:17 -0000 Date: Fri, 29 Aug 2003 00:09:00 -0000 Message-ID: <20030829000917.4924.qmail@sources.redhat.com> From: "janis187 at us dot ibm dot com" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20030827203936.12082.augart@us.ibm.com> References: <20030827203936.12082.augart@us.ibm.com> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug optimization/12082] [3.3/3.4 regression] Inappropriate unreachable code warnings X-Bugzilla-Reason: CC X-SW-Source: 2003-08/txt/msg03189.txt.bz2 List-Id: PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12082 janis187 at us dot ibm dot com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jh at suse dot cz ------- Additional Comments From janis187 at us dot ibm dot com 2003-08-29 00:09 ------- The regression in PR 12082 was introduced or exposed by this patch: --- gcc/gcc/ChangeLog --- Don Feb 28 11:07:36 CET 2002 Jan Hubicka * basic-block.h (BB_REACHABLE): Renumber. (BB_DIRTY, BB_NEW): New flags. (clear_bb_flags): Declare. (update_life_info_in_dirty_blocks): Declare. * cfg.c (clear_bb_flags): New function. * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW. * emit-rtl.c (add_insn_after, add_insn_before, remove_insn, reorder_insns, emit_insn_after): Mark block as dirty. * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS. (update_life_info_in_dirty_blocks): New function. * recog.c (apply_change_group): Dirtify block. * cse.c (cse_insn): Reorder emitting of jump insn to keep cfg consistent. * gcse.c (delete_null_pointer_checks): Likewise. * toplev.c (dump_file_index): Move cse2 after bp, add DFI_null (dump_file_info): Similary. (rest_of_compilation): Avoid most of CFG rebuilds; do first if converision after null pointer checks, do cse2 after branch prediction; avoid full liveness rebuild after initializing subregs. * invoke.texi (-d options): Document -du, renumber. * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE. (notice_new_block): Do not set BB_UPDATE_LIFE. (try_forward_edges, merge_blocks_move_predecessor_nojumps, merge_blocks_move_successor_nojumps, merge_blocks, try_crossjump_to_edge): Likewise. (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks. * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a. * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill. (merge_of_block): Do not use life_data_ok. (find_if_case_1): Do not use SET_UPDATE_LIFE. (if_convert): Use BB_DIRTY mechanizm to update life. * lcm.c (optimize_mode_switching): Update update_life_info_in_dirty_blocks The regression hunt took place on i686-pc-linux-gnu using Wolfgang's small test case from comment #7 compiled with "-O3 -Wunreachable-code".