re PR tree-optimization/53265 (Warn when undefined behavior implies smaller iteration count)
PR tree-optimization/53265 * common.opt (Waggressive-loop-optimizations): New option. * tree-ssa-loop-niter.c: Include tree-pass.h. (do_warn_aggressive_loop_optimizations): New function. (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds if number_of_latch_executions returned constant. (estimate_numbers_of_iterations_loop): Call number_of_latch_executions early. If number_of_latch_executions returned constant, set nb_iterations_upper_bound back to it. * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations field. * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H). * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document. * gcc.dg/pr53265.c: New test. * gcc.dg/torture/pr49518.c: Add -Wno-aggressive-loop-optimizations to dg-options. * g++.dg/opt/longbranch2.C (EBCOTLut): Double sizes of a2 and a3 arrays. * gcc.dg/tree-ssa/cunroll-10.c (main): Rename to foo. Add argument n, use it as high bound instead of 4. * unwind-dw2.c (execute_cfa_program): Avoid -Waggressive-array-optimizations warnings for DW_CFA_GNU_window_save on targets with DWARF_FRAME_REGISTERS < 32. * testsuite/libmudflap.c/fail37-frag.c: Add optimization barrier. From-SVN: r196650
Showing
- gcc/ChangeLog 14 additions, 0 deletionsgcc/ChangeLog
- gcc/Makefile.in 1 addition, 1 deletiongcc/Makefile.in
- gcc/cfgloop.h 4 additions, 0 deletionsgcc/cfgloop.h
- gcc/common.opt 4 additions, 0 deletionsgcc/common.opt
- gcc/doc/invoke.texi 8 additions, 1 deletiongcc/doc/invoke.texi
- gcc/testsuite/ChangeLog 11 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/g++.dg/opt/longbranch2.C 2 additions, 2 deletionsgcc/testsuite/g++.dg/opt/longbranch2.C
- gcc/testsuite/gcc.dg/pr53265.c 156 additions, 0 deletionsgcc/testsuite/gcc.dg/pr53265.c
- gcc/testsuite/gcc.dg/torture/pr49518.c 1 addition, 0 deletionsgcc/testsuite/gcc.dg/torture/pr49518.c
- gcc/testsuite/gcc.dg/tree-ssa/cunroll-10.c 3 additions, 2 deletionsgcc/testsuite/gcc.dg/tree-ssa/cunroll-10.c
- gcc/tree-ssa-loop-niter.c 59 additions, 2 deletionsgcc/tree-ssa-loop-niter.c
- libgcc/ChangeLog 7 additions, 0 deletionslibgcc/ChangeLog
- libgcc/unwind-dw2.c 6 additions, 5 deletionslibgcc/unwind-dw2.c
- libmudflap/ChangeLog 5 additions, 0 deletionslibmudflap/ChangeLog
- libmudflap/testsuite/libmudflap.c/fail37-frag.c 5 additions, 1 deletionlibmudflap/testsuite/libmudflap.c/fail37-frag.c
Loading
Please register or sign in to comment