[Bug tree-optimization/53265] Warn when undefined behavior implies smaller iteration count

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Mar 14 09:14:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53265

--- Comment #25 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-03-14 09:13:45 UTC ---
Author: jakub
Date: Thu Mar 14 09:13:36 2013
New Revision: 196650

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=196650
Log:
    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.

Added:
    trunk/gcc/testsuite/gcc.dg/pr53265.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/Makefile.in
    trunk/gcc/cfgloop.h
    trunk/gcc/common.opt
    trunk/gcc/doc/invoke.texi
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/g++.dg/opt/longbranch2.C
    trunk/gcc/testsuite/gcc.dg/torture/pr49518.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/cunroll-10.c
    trunk/gcc/tree-ssa-loop-niter.c
    trunk/libgcc/ChangeLog
    trunk/libgcc/unwind-dw2.c
    trunk/libmudflap/ChangeLog
    trunk/libmudflap/testsuite/libmudflap.c/fail37-frag.c



More information about the Gcc-bugs mailing list