summaryrefslogtreecommitdiff
path: root/gcc/tree-cfgcleanup.c
Commit message (Collapse)AuthorAgeFilesLines
* PR tree-optimization/26209rakdver2006-02-141-5/+10
| | | | | | | | | | | * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg. * tree-cfgcleanup.c (cleanup_control_flow): Remove dead eh edges. * tree-cfg.c (replace_uses_by): Do not alter cfg. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110999 138bc75d-0d04-0410-961f-82ee72b054a4
* * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):rakdver2006-02-141-11/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Document. * tree-ssa-loop-niter.c (number_of_iterations_ne, number_of_iterations_lt, number_of_iterations_cond): Remember the shape of the ending condition. * tree-ssa-loop-manip.c: Include params.h. (build_if_stmt, can_unroll_loop_p, determine_exit_conditions, tree_unroll_loop): New functions. * tree-pass.h (pass_loop_prefetch): Declare. * loop.c (rest_of_handle_loop_optimize): Test for -fprefetch-loop-arrays-rtl. * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h. * timevar.def (TV_TREE_PREFETCH): New timevar. * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch, pass_loop_prefetch): New. * tree-cfgcleanup.c: Include tree-scalar-evolution.h. (cleanup_tree_cfg_loop): Call scev_reset. * common.opt (fprefetch-loop-arrays-rtl): Add. * tree-ssa-loop-prefetch.c: New file. * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field. (new_temp_expr_table): Initialize expr_vars. (free_temp_expr_table): Cleanup expr_vars. (check_replaceable, find_replaceable_in_bb): Prevent accumulating expressions from being merged into one. * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h. (struct tree_niter_desc): Add control, bound and cmp fields. (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop): Declare. * Makefile.in (tree-ssa-loop-prefetch.o): Add. (tree-cfgcleanup.o): Add SCEV_H dependency. (tree-ssa-loop-manip.o): Add PARAMS_H dependency. * passes.c (init_optimization_passes): Add pass_loop_prefetch. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110964 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-01-31 Marcin Dalecki <martin@dalecki.de>dalecki2006-01-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree-vrp.c: Use XNEW/XCNEW allocation wrappers. * regrename.c: Ditto. * tree-ssa-loop-im.c: Ditto. * tree-dump.c: Ditto. * tree-complex.c: Ditto. * genrecog.c: Ditto. * tree-ssa-threadupdate.c: Ditto. * tracer.c: Ditto. * java/class.c: Ditto. * java/jcf-parse.c: Ditto. * java/resource.c: Ditto. * java/except.c: Ditto. * java/jvspec.c: Ditto. * java/jcf-write.c: Ditto. * java/jcf-path.c: Ditto. * java/gjavah.c: Ditto. * java/zextract.c: Ditto. * java/jcf-io.c: Ditto. * java/jcf.h: Ditto. * java/buffer.c: Ditto. * java/lang.c: Ditto. * java/parse-scan.y: Ditto. * java/lex.c: Ditto. * java/lex.h: Ditto. * cfgloopmanip.c: Ditto. * postreload-gcse.c: Ditto. * tree-ssa-loop-manip.c: Ditto. * postreload.c: Ditto. * tree-ssa-loop-ch.c: Ditto. * loop.c: Ditto. * ipa-cp.c: Ditto. * cppspec.c: Ditto. * diagnostic.c: Ditto. * final.c: Ditto. * genoutput.c: Ditto. * gcc.c: Ditto. * cfghooks.c: Ditto. * cfgloopanal.c: Ditto. * objc/objc-act.c: Ditto. * gcov.c: Ditto. * genextract.c: Ditto. * genautomata.c: Ditto. * pretty-print.c: Ditto. * genemit.c: Ditto. * cgraphunit.c: Ditto. * flow.c: Ditto. * df-scan.c: Ditto. * haifa-sched.c: Ditto. * dominance.c: Ditto. * dbxout.c: Ditto. * tree-ssa-loop-ivopts.c: Ditto. * df-core.c: Ditto. * mode-switching.c: Ditto. * modulo-sched.c: Ditto. * graph.c: Ditto. * ipa-pure-const.c: Ditto. * cse.c: Ditto. * fix-header.c: Ditto. * web.c: Ditto. * tree-stdarg.c: Ditto. * ipa-utils.c: Ditto. * loop-init.c: Ditto. * ipa-inline.c: Ditto. * cfganal.c: Ditto. * global.c: Ditto. * alloc-pool.c: Ditto. * dwarf2out.c: Ditto. * opts.c: Ditto. * genattrtab.c: Ditto. * tree-ssa-loop-ivcanon.c: Ditto. * predict.c: Ditto. * timevar.c: Ditto. * lcm.c: Ditto. * fortran/gfortranspec.c: Ditto. * regmove.c: Ditto. * local-alloc.c: Ditto. * langhooks.c: Ditto. * function.c: Ditto. * tree-vectorizer.c: Ditto. * gcse.c: Ditto. * ipa-type-escape.c: Ditto. * alias.c: Ditto. * tree-if-conv.c: Ditto. * profile.c: Ditto. * ipa.c: Ditto. * tree-data-ref.c: Ditto. * loop-unroll.c: Ditto. * treelang/treetree.c: Ditto. * calls.c: Ditto. * bt-load.c: Ditto. * ggc-common.c: Ditto. * except.c: Ditto. * coverage.c: Ditto. * cselib.c: Ditto. * tree-cfgcleanup.c: Ditto. * tree-ssa-pre.c: Ditto. * cfgcleanup.c: Ditto. * loop-invariant.c: Ditto. * loop-iv.c: Ditto. * ipa-prop.c: Ditto. * print-tree.c: Ditto. * conflict.c: Ditto. * ggc-page.c: Ditto. * sched-deps.c: Ditto. * regclass.c: Ditto. * tree-object-size.c: Ditto. * combine.c: Ditto. * bb-reorder.c: Ditto. * resource.c: Ditto. * var-tracking.c: Ditto. * cfgloop.c: Ditto. * df-problems.c: Ditto. * reg-stack.c: Ditto. * tlink.c: Ditto. * gccspec.c: Ditto. * sched-rgn.c: Ditto. * tree-ssa-structalias.c: Ditto. * tree-ssa-reassoc.c: Ditto. * config/darwin-c.c: Ditto. * config/darwin.c: Ditto. * config/arm/arm.c: Ditto. * cfgrtl.c: Ditto. * collect2.c: Ditto. * reload1.c: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110446 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfg.c (bsi_replace): Rename final argument fromlaw2006-01-061-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109421 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/kazu2005-12-201-1/+3
| | | | | | | | | | | | | | PR tree-optimization/25501 * tree-cfgcleanup.c (merge_phi_nodes): Check that RESULT is used in the PHI argument corresponding to the edge from BB to DEST. gcc/testsuite/ PR tree-optimization/25501 * testsuite/gcc.dg/tree-ssa/pr25501.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108853 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-ssa-dom.c (thread_across_edge): Do not use local_fold.law2005-12-201-0/+33
| | | | | | | | | | | | Strip away all type conversions after simplifying the condition. * tree-cfgcleanup.c (merge_phi_nodes): Allow merging in some cases the forwarder block dominates the destination. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108833 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree-cfgcleanup.c (cleanup_tree_cfg): Fix flowgraph changednovillo2005-08-191-4/+11
| | | | | | | | indicator. Return true if the flowgraph changed during cleanup. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103291 138bc75d-0d04-0410-961f-82ee72b054a4
* PR 23476dnovillo2005-08-191-2/+2
| | | | | | | | | | | * tree-cfgcleanup.c (cleanup_control_expr_graph): Fold the conditional expression before testing its value. PR 23476 * gcc.c-torture/compile/pr23476.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103290 138bc75d-0d04-0410-961f-82ee72b054a4
* PR 23164dnovillo2005-08-021-12/+2
| | | | | | | | | | | | | * tree-cfgcleanup.c (cleanup_tree_cfg): Do not limit the number of calls to cleanup_tree_cfg_1. testsuite/ChangeLog PR 23164 * g++.dg/tree-ssa/pr23164.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@102666 138bc75d-0d04-0410-961f-82ee72b054a4
* PR 22550dnovillo2005-07-291-10/+28
| | | | | | | | | | | | | | | * tree-cfgcleanup.c (cleanup_tree_cfg_1): Extract from ... (cleanup_tree_cfg): ... here. Call cleanup_tree_cfg_1 until there are no more cleanups to do. testsuite/ChangeLog PR 22550 * g++.dg/tree-ssa/pr22550.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@102559 138bc75d-0d04-0410-961f-82ee72b054a4
* PR middle-end/22057ian2005-07-181-8/+16
| | | | | | | | * tree-cfgcleanup.c (cleanup_tree_cfg): Only remove forwarder blocks when optimizing. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@102142 138bc75d-0d04-0410-961f-82ee72b054a4
* Update FSF address.kcook2005-06-251-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101317 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in (OBJS-common): Add tree-cfgcleanup.o.kazu2005-05-281-0/+756
* tree-flow.h: Add prototypes for start_recording_case_labels and end_recording_case_labels. * tree-cfg.c (start_recording_case_labels, end_recording_case_labels): Export. (cleanup_tree_cfg_loop, modified_noreturn_calls, cleanup_control_flow, cleanup_control_expr_graph, remove_fallthru_edge, phi_alternatives_equal, tree_forwarder_block_p, has_abnormal_incoming_edge_p, remove_forwarder_block, cleanup_forwarder_blocks, remove_forwarder_block_with_phi, merge_phi_nodes, gate_merge_phi, pass_merge_phi): Move to ... * tree-cfgcleanup.c: ... here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100302 138bc75d-0d04-0410-961f-82ee72b054a4