From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30184 invoked by alias); 10 Apr 2007 12:39:42 -0000 Received: (qmail 29063 invoked by uid 48); 10 Apr 2007 12:39:22 -0000 Date: Tue, 10 Apr 2007 12:39:00 -0000 Message-ID: <20070410123922.29062.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/31522] [4.3 Regression] False overflow warning with phi nodes In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "rguenth at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2007-04/txt/msg00685.txt.bz2 ------- Comment #4 from rguenth at gcc dot gnu dot org 2007-04-10 13:39 ------- I don't see the warning, but the range with overflow is derived from vrp_visit_phi_node where we fall back to +INF(OVF) from [1, 536870911] because /* To prevent infinite iterations in the algorithm, derive ranges when the new value is slightly bigger or smaller than the previous one. */ but why exactly do we care bout overflow infinities there at all (apart from if the new max/min are overflowed)? Instead we throw away overflowed (and not overflowed) infinites dropping to VARYING. Strange.... (of course the whole block preventing inifinite iterations is pessimizing some cases which is why I introduced all_const -- we might use all_or_all_but_one_const here ;)) -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2007-04-10 13:39:22 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31522