From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24571 invoked by alias); 3 Jul 2007 12:57:43 -0000 Received: (qmail 24551 invoked by uid 48); 3 Jul 2007 12:57:32 -0000 Date: Tue, 03 Jul 2007 12:57:00 -0000 Message-ID: <20070703125732.24550.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/32377] can't determine dependence (source/destination overlap without more than size) In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "irar at il dot ibm dot com" 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-07/txt/msg00297.txt.bz2 ------- Comment #7 from irar at il dot ibm dot com 2007-07-03 12:57 ------- (In reply to comment #6) > Distance vectors are lexicographically positive vectors, that is why you get > the 1 > in all these cases. If you want to know which one comes first, you have to > look > at the DR_IS_READ for both references in the dependence relation. I am sorry, but I still don't understand. For for (i = 0; i < N; i++){ ia[i+1] = ia[i] * 4; } the ddr is {ld, st} and distance 1 and for for (i = 0; i < N; i++){ ia[i] = ia[i+1] * 4; } the ddr is also {ld, st} with distance 1. How can we distinguish between these cases? Thanks, Ira -- irar at il dot ibm dot com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |irar at il dot ibm dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32377