From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22396 invoked by alias); 22 Jun 2007 17:56:48 -0000 Received: (qmail 22359 invoked by alias); 22 Jun 2007 17:56:37 -0000 Date: Fri, 22 Jun 2007 17:56:00 -0000 Message-ID: <20070622175637.22358.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug rtl-optimization/26026] power of 2 mod missing optimisation In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "bergner 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-06/txt/msg02049.txt.bz2 ------- Comment #7 from bergner at gcc dot gnu dot org 2007-06-22 17:56 ------- Subject: Bug 26026 Author: bergner Date: Fri Jun 22 17:56:14 2007 New Revision: 125952 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=125952 Log: Reassociation rewrite backport from mainline. 2006-03-22 Jeff Law * loop-unroll.c (analyze_iv_to_split_insn): Handle iv_analyze_result returning false. 2006-04-20 Jeff Law * tree-ssa-reassoc.c (negate_value): Avoid num_imm_uses when checking for zero or one use. (reassociate_bb): Similarly. 2006-04-19 Alan Modra PR rtl-optimization/26026 * fold-const.c (fold_binary): Optimize div and mod where the divisor is a known power of two shifted left a variable amount. 2006-01-06 Jeff Law * tree-cfg.c (bsi_replace): Rename final argument from PRESERVE_EH_INFO to UPDATE_EH_INFO. Fix typo in last change (stmt -> orig_stmt). * tree-eh.c (verify_eh_throw_stmt_node): New function. (bsi_remove): Add new argument. Remove EH information if requested. (verify_eh_throw_table_statements): New function. (bsi_remove): Add new argument REMOVE_EH_INFO. All callers updated. * tree-optimize.c (execute_free_cfg_annotations): Verify the EH throw statement table after removing annotations. * except.h (verify_eh_throw_table_statements): Prototype. * tree-flow.h (bsi_remove): Update prototype. * tree-vrp.c (remove_range_assertions): Add new argument to bsi_remove call. * tree-ssa-loop-im.c (move_computations_stmt): Likewise. * tree-complex.c (expand_complex_div_wide): Likewise. * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise * tree-tailcall.c (eliminate_tailcall): Likewise. * tree-ssa-dse.c (dse_optimize_stmt): Likewise. * tree-ssa-loop-ivopts.c (remove_statement): Likewise. * tree-nrv.c (tree_nrv): Likewise. * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise. * tree-if-conv.c (tree_if_convert_cond_expr): Likewise. (combine_blocks): Likewise. * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise. * tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise. (cleanup_control_flow): Likewise. (remove_forwarder_block): Likewise. * tree-ssa-pre.c (remove_dead_inserted_code): Likewise. * tree-sra.c (sra_replace): Likewise. * tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise. (forward_propagate_single_use_vars): Likewise. * tree-ssa-dce.c (remove_dead_stmt): Likewise. * tree-inline.c (expand_call_inline): Likewise. * tree-vect-transform.c (vect_transform_loop): Likewise. * tree-outof-ssa.c (rewrite_trees): Likewise. * tree-cfg.c (make_goto_expr_edges): Likewise. (cleanup_dead_labels): Likewise. (tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise. (bsi_move_before, bsi_move_after): Likewise. (bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise (tree_redirect_edge_and_branch, tree_split_block): Likewise. 2006-01-04 Jeff Law * tree-cfg.c (bsi_replace): Remove the original statement from the EH throw statement table. 2005-12-19 Roger Sayle * combine.c (try_combine): Improve splitting of binary operators by taking advantage of reassociative transformations. 2005-12-12 Jeff Law * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove reassociation code. * passes.c (init_optimization_passes): Run reassociation again after loop optimizations. 2005-12-12 Daniel Berlin * tree-ssa-dom.c (thread_across_edge): Canonicalize condition if necessary. (optimize_stmt): Ditto. (canonicalize_comparison): New function. * tree-ssa-operands.c (swap_tree_operands): Make external. (get_expr_operands): Stop auto-canonicalization. * tree-ssa-reassoc.c: Rewrite. (init_optimization_passes): * tree-flow.h (swap_tree_operands): Prototype. * Makefile.in (tree-ssa-reassoc.o): Update dependencies. * gcc.dg/tree-ssa/ssa-pre-2.c: Update due to reassociation changes. * gcc.dg/tree-ssa/reassoc-1.c: Likewise. * gcc.dg/tree-ssa/reassoc-2.c: Likewise. * gcc.dg/tree-ssa/reassoc-3.c: Likewise. * gcc.dg/tree-ssa/reassoc-4.c: Likewise. * gcc.dg/tree-ssa/reassoc-5.c: New. * gcc.dg/tree-ssa/reassoc-6.c: New. * gcc.dg/tree-ssa/reassoc-7.c: New. * gcc.dg/tree-ssa/reassoc-8.c: New. * gcc.dg/tree-ssa/reassoc-9.c: New. * gcc.dg/tree-ssa/reassoc-10.c: New. * gcc.dg/tree-ssa/reassoc-11.c: New. Added: branches/ibm/gcc-4_1-branch/gcc/testsuite/gcc.dg/tree-ssa/reassoc-10.c branches/ibm/gcc-4_1-branch/gcc/testsuite/gcc.dg/tree-ssa/reassoc-11.c branches/ibm/gcc-4_1-branch/gcc/testsuite/gcc.dg/tree-ssa/reassoc-5.c branches/ibm/gcc-4_1-branch/gcc/testsuite/gcc.dg/tree-ssa/reassoc-6.c branches/ibm/gcc-4_1-branch/gcc/testsuite/gcc.dg/tree-ssa/reassoc-7.c branches/ibm/gcc-4_1-branch/gcc/testsuite/gcc.dg/tree-ssa/reassoc-8.c branches/ibm/gcc-4_1-branch/gcc/testsuite/gcc.dg/tree-ssa/reassoc-9.c Modified: branches/ibm/gcc-4_1-branch/gcc/ChangeLog branches/ibm/gcc-4_1-branch/gcc/Makefile.in branches/ibm/gcc-4_1-branch/gcc/combine.c branches/ibm/gcc-4_1-branch/gcc/except.h branches/ibm/gcc-4_1-branch/gcc/loop-unroll.c branches/ibm/gcc-4_1-branch/gcc/passes.c branches/ibm/gcc-4_1-branch/gcc/testsuite/gcc.dg/tree-ssa/reassoc-1.c branches/ibm/gcc-4_1-branch/gcc/testsuite/gcc.dg/tree-ssa/reassoc-2.c branches/ibm/gcc-4_1-branch/gcc/testsuite/gcc.dg/tree-ssa/reassoc-3.c branches/ibm/gcc-4_1-branch/gcc/testsuite/gcc.dg/tree-ssa/reassoc-4.c branches/ibm/gcc-4_1-branch/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-2.c branches/ibm/gcc-4_1-branch/gcc/tree-cfg.c branches/ibm/gcc-4_1-branch/gcc/tree-cfgcleanup.c branches/ibm/gcc-4_1-branch/gcc/tree-complex.c branches/ibm/gcc-4_1-branch/gcc/tree-eh.c branches/ibm/gcc-4_1-branch/gcc/tree-flow.h branches/ibm/gcc-4_1-branch/gcc/tree-if-conv.c branches/ibm/gcc-4_1-branch/gcc/tree-inline.c branches/ibm/gcc-4_1-branch/gcc/tree-nrv.c branches/ibm/gcc-4_1-branch/gcc/tree-optimize.c branches/ibm/gcc-4_1-branch/gcc/tree-outof-ssa.c branches/ibm/gcc-4_1-branch/gcc/tree-sra.c branches/ibm/gcc-4_1-branch/gcc/tree-ssa-dce.c branches/ibm/gcc-4_1-branch/gcc/tree-ssa-dom.c branches/ibm/gcc-4_1-branch/gcc/tree-ssa-dse.c branches/ibm/gcc-4_1-branch/gcc/tree-ssa-forwprop.c branches/ibm/gcc-4_1-branch/gcc/tree-ssa-loop-im.c branches/ibm/gcc-4_1-branch/gcc/tree-ssa-loop-ivopts.c branches/ibm/gcc-4_1-branch/gcc/tree-ssa-operands.c branches/ibm/gcc-4_1-branch/gcc/tree-ssa-phiopt.c branches/ibm/gcc-4_1-branch/gcc/tree-ssa-pre.c branches/ibm/gcc-4_1-branch/gcc/tree-ssa-reassoc.c branches/ibm/gcc-4_1-branch/gcc/tree-ssa-threadupdate.c branches/ibm/gcc-4_1-branch/gcc/tree-tailcall.c branches/ibm/gcc-4_1-branch/gcc/tree-vect-transform.c branches/ibm/gcc-4_1-branch/gcc/tree-vectorizer.c branches/ibm/gcc-4_1-branch/gcc/tree-vrp.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26026