aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-ssa-split-paths.c
AgeCommit message (Collapse)AuthorFilesLines
2016-07-05gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa): Handle ↵Richard Biener1-8/+17
empty else block. 2016-07-05 Richard Biener <rguenther@suse.de> * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa): Handle empty else block. (is_feasible_trace): Likewise. (split_paths): Likewise. From-SVN: r238005
2016-02-29re PR tree-optimization/69999 (ICE in verify_loop_structure, at ↵Jeff Law1-0/+18
cfgloop.c:1639 (error: loop with header 3 not in loop tree) at -O3 or -Ofast) PR tree-optimization/69999 * gimple-ssa-split-paths.c (split_paths): When duplicating a block with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule loop cleanups. PR tree-optimization/69999 * gcc.c-torture/compile/pr69999.c: New test. From-SVN: r233824
2016-02-05re PR tree-optimization/68541 (Path splitting causes if-conversion miss)Jeff Law1-12/+101
PR tree-optimization/68541 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h. (count_stmts_in_block): New function. (poor_ifcvt_candidate_code): Likewise. (is_feasible_trace): Add some heuristics to determine when path splitting is profitable. (find_block_to_duplicate_for_splitting_paths): Make sure the graph is a diamond with a single exit. PR tree-optimization/68541 * gcc.dg/tree-ssa/split-path-2.c: New test. * gcc.dg/tree-ssa/split-path-3.c: New test. * gcc.dg/tree-ssa/split-path-4.c: New test. * gcc.dg/tree-ssa/split-path-5.c: New test. * gcc.dg/tree-ssa/split-path-6.c: New test. * gcc.dg/tree-ssa/split-path-7.c: New test. From-SVN: r233191
2016-01-23tree-ssanames.c (release_free_names_and_compact_live_names): Replace "the ↵Jakub Jelinek1-1/+1
the" with "the" in the comments. * tree-ssanames.c (release_free_names_and_compact_live_names): Replace "the the" with "the" in the comments. * ipa-devirt.c (build_type_inheritance_graph, update_type_inheritance_graph): Likewise. * tree.c (build_function_type_list_1): Likewise. * cfgloopmanip.c (scale_loop_profile): Likewise. * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise. * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_paths): Likewise. * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise. * expr.c (convert_move): Likewise. * var-tracking.c (vt_stack_adjustments): Likewise. * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise. * tree-vrp.c (test_for_singularity): Likewise. From-SVN: r232765
2016-01-04Update copyright years.Jakub Jelinek1-1/+1
From-SVN: r232055
2015-12-22[PATCH] Avoid unnecessary block copying in path splittingJeff Law1-5/+4
* gimple-ssa-split-paths.c (split_paths): Avoid unnecessary block copying. From-SVN: r231915
2015-12-17[PATCH] Limit path splitting to loops we optimize for speedJeff Law1-1/+7
* doc/invoke.texi (-O2 options): Remove -fsplit-paths. (-O3 options): Add -fsplit-paths. * gimple-ssa-split-paths.c: Include predict.h (split_paths): Only split paths in a loop that should be optimized for speed. * opts.c (default_options_table): Move -fsplit-paths from -O2 to -O3. * gcc.dg/tree-ssa/split-path-1.c: Explicitly ask for path splitting optimizations. From-SVN: r231790
2015-11-13[Patch,tree-optimization]: Add new path Splitting pass on tree ssaAjit Agarwal1-0/+270
representation * Makefile.in (OBJS): Add gimple-ssa-split-paths.o * common.opt (-fsplit-paths): New flag controlling path splitting. * doc/invoke.texi (fsplit-paths): Document. * opts.c (default_options_table): Add -fsplit-paths to -O2. * passes.def: Add split_paths pass. * timevar.def (TV_SPLIT_PATHS): New timevar. * tracer.c: Include "tracer.h" (ignore_bb_p): No longer static. (transform_duplicate): New function, broken out of tail_duplicate. (tail_duplicate): Use transform_duplicate. * tracer.h (ignore_bb_p): Declare (transform_duplicate): Likewise. * tree-pass.h (make_pass_split_paths): Declare. * gimple-ssa-split-paths.c: New file. * gcc.dg/tree-ssa/split-path-1.c: New test. Co-Authored-By: Jeff Law <law@redhat.com> From-SVN: r230364