[Bug tree-optimization/69726] [6 Regression] Bogus warnings with -O3 -Wuninitialized because dead code after if-conversion
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69726 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #4 from Richard Biener --- Fixed.
[Bug tree-optimization/69726] [6 Regression] Bogus warnings with -O3 -Wuninitialized because dead code after if-conversion
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69726 --- Comment #5 from Richard Biener --- Author: rguenth Date: Wed Feb 10 12:46:33 2016 New Revision: 233267 URL: https://gcc.gnu.org/viewcvs?rev=233267&root=gcc&view=rev Log: 2016-02-10 Richard Biener PR tree-optimization/69726 * passes.def: Add DCE pass before late uninit. * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to really fixup if-conversions job. * gcc.dg/uninit-22.c: New testcase. Added: trunk/gcc/testsuite/gcc.dg/uninit-22.c Modified: trunk/gcc/ChangeLog trunk/gcc/match.pd trunk/gcc/passes.def trunk/gcc/testsuite/ChangeLog
[Bug tree-optimization/69726] [6 Regression] Bogus warnings with -O3 -Wuninitialized because dead code after if-conversion
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69726 --- Comment #3 from Richard Biener --- It solved itself with 2016-02-08 Richard Biener PR tree-optimization/69719 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Properly use absolute of the difference of the two offsets to compare or adjust the segment length. and no longer vectorizing (too many versioning for alias checks - another missed optimization). The following patch would have avoided the warning: Index: gcc/tree-ssa-uninit.c === --- gcc/tree-ssa-uninit.c (revision 233239) +++ gcc/tree-ssa-uninit.c (working copy) @@ -231,6 +231,24 @@ warn_uninitialized_vars (bool warn_possi || is_global_var (base)) continue; + /* Do not confuse ourselves with dead code. See PR69726. */ + bool dont_warn = false; + gimple *use_stmt = stmt; + use_operand_p use_p; + tree lhs; + do + { + lhs = gimple_assign_lhs (use_stmt); + if (TREE_CODE (lhs) != SSA_NAME) + break; + if (has_zero_uses (lhs)) + { + dont_warn = true; + continue; + } + } + while (single_imm_use (lhs, &use_p, &use_stmt)); + if (always_executed) warn_uninit (OPT_Wuninitialized, use, gimple_assign_rhs1 (stmt), base,
[Bug tree-optimization/69726] [6 Regression] Bogus warnings with -O3 -Wuninitialized because dead code after if-conversion
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69726 Richard Biener changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Target Milestone|--- |6.0 Summary|Bogus warnings with -O3 |[6 Regression] Bogus |-Wuninitialized because |warnings with -O3 |dead code after |-Wuninitialized because |if-conversion |dead code after ||if-conversion