https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64246
--- Comment #12 from Yvan Roux <yroux at gcc dot gnu.org> --- Author: yroux Date: Thu Mar 5 14:28:05 2015 New Revision: 221216 URL: https://gcc.gnu.org/viewcvs?rev=221216&root=gcc&view=rev Log: gcc/ 2015-03-05 Yvan Roux <yvan.r...@linaro.org> Backport from trunk r212011, r214942, r214957, r215012, r215016, r218115, r218733, r218746, r220491. 2015-02-06 Sebastian Pop <s....@samsung.com> Brian Rzycki <b.rzy...@samsung.com> PR tree-optimization/64878 * tree-ssa-threadedge.c: Include tree-ssa-loop.h. (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi. Stop recursion at loop phi nodes after having visited a loop phi node. 2014-12-15 Richard Biener <rguent...@suse.de> PR middle-end/64246 * cfgloop.c (mark_loop_for_removal): Make safe against multiple invocations on the same loop. 2014-12-15 Richard Biener <rguent...@suse.de> PR tree-optimization/64284 * tree-ssa-threadupdate.c (duplicate_seme_region): Mark the loop for removal if we copied the loop header. 2014-11-27 Richard Biener <rguent...@suse.de> PR tree-optimization/64083 * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not forcibly mark loop for removal the wrong way. 2014-09-08 Richard Biener <rguent...@suse.de> PR ipa/63196 * tree-inline.c (copy_loops): The source loop header should always be non-NULL. (tree_function_versioning): If loops need fixup after removing unreachable blocks fix them. * omp-low.c (simd_clone_adjust): Do not add incr block to loop under construction. 2014-09-08 Richard Biener <rguent...@suse.de> PR bootstrap/63204 * cfgloop.c (mark_loop_for_removal): Track former header unconditionally. * cfgloop.h (struct loop): Add former_header member unconditionally. * loop-init.c (fix_loop_structure): Enable bogus loop removal diagnostic unconditionally. 2014-09-05 Richard Biener <rguent...@suse.de> * cfgloop.c (mark_loop_for_removal): Record former header when ENABLE_CHECKING. * cfgloop.h (strut loop): Add former_header member when ENABLE_CHECKING. * loop-init.c (fix_loop_structure): Sanity check loops marked for removal if they re-appeared. 2014-09-05 Richard Biener <rguent...@suse.de> * cfgloop.c (mark_loop_for_removal): New function. * cfgloop.h (mark_loop_for_removal): Declare. * cfghooks.c (delete_basic_block): Use mark_loop_for_removal. (merge_blocks): Likewise. (duplicate_block): Likewise. * except.c (sjlj_emit_dispatch_table): Likewise. * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise. * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise. (thread_through_loop_header): Likewise. 2014-06-26 Richard Biener <rguent...@suse.de> PR tree-optimization/61607 * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the loop if we redirected its latch edge. (thread_block_1): Do not cancel loops prematurely. gcc/testsuite/ 2015-03-05 Yvan Roux <yvan.r...@linaro.org> Backport from trunk r218115, r218733, r218746, r220491. 2015-02-06 Sebastian Pop <s....@samsung.com> Brian Rzycki <b.rzy...@samsung.com> PR tree-optimization/64878 * testsuite/gcc.dg/tree-ssa/ssa-dom-thread-8.c: New. 2014-12-15 Richard Biener <rguent...@suse.de> PR middle-end/64246 * gnat.dg/opt46.adb: New testcase. * gnat.dg/opt46.ads: Likewise. * gnat.dg/opt46_pkg.adb: Likewise. * gnat.dg/opt46_pkg.ads: Likewise. 2014-12-15 Richard Biener <rguent...@suse.de> PR tree-optimization/64284 * gcc.dg/torture/pr64284.c: New testcase. 2014-11-27 Richard Biener <rguent...@suse.de> PR tree-optimization/64083 * gcc.dg/torture/pr64083.c: New testcase. Added: branches/linaro/gcc-4_9-branch/gcc/testsuite/gcc.dg/torture/pr64083.c branches/linaro/gcc-4_9-branch/gcc/testsuite/gcc.dg/torture/pr64284.c branches/linaro/gcc-4_9-branch/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-8.c branches/linaro/gcc-4_9-branch/gcc/testsuite/gnat.dg/opt46.adb branches/linaro/gcc-4_9-branch/gcc/testsuite/gnat.dg/opt46.ads branches/linaro/gcc-4_9-branch/gcc/testsuite/gnat.dg/opt46_pkg.adb branches/linaro/gcc-4_9-branch/gcc/testsuite/gnat.dg/opt46_pkg.ads Modified: branches/linaro/gcc-4_9-branch/gcc/ChangeLog.linaro branches/linaro/gcc-4_9-branch/gcc/cfghooks.c branches/linaro/gcc-4_9-branch/gcc/cfgloop.c branches/linaro/gcc-4_9-branch/gcc/cfgloop.h branches/linaro/gcc-4_9-branch/gcc/except.c branches/linaro/gcc-4_9-branch/gcc/loop-init.c branches/linaro/gcc-4_9-branch/gcc/omp-low.c branches/linaro/gcc-4_9-branch/gcc/testsuite/ChangeLog.linaro branches/linaro/gcc-4_9-branch/gcc/tree-eh.c branches/linaro/gcc-4_9-branch/gcc/tree-inline.c branches/linaro/gcc-4_9-branch/gcc/tree-ssa-threadedge.c branches/linaro/gcc-4_9-branch/gcc/tree-ssa-threadupdate.c