This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] vectorizer: maintain location information, and ping
- From: Richard Henderson <rth at redhat dot com>
- To: Dorit Naishlos <DORIT at il dot ibm dot com>
- Cc: gcc-patches at gcc dot gnu dot org, Leehod Baruch <LEEHOD at il dot ibm dot com>
- Date: Tue, 1 Feb 2005 14:19:00 -0800
- Subject: Re: [patch] vectorizer: maintain location information, and ping
- References: <OF9F0CE9A6.D7B6E31D-ONC2256F9A.002FE3C6-C2256F9A.00590942@il.ibm.com>
On Mon, Jan 31, 2005 at 06:12:30PM +0200, Dorit Naishlos wrote:
> 1. setup code in the loop preheader for: (1) initialization of a vector
> with a constant/invariant value, (2) mask calculation and extra load for
> software-pipelined unaligned-load handling, (3) address calculation code,
> including new IVs. These can get the location of the original scalar stmt
> that prompted the creation of this code.
Yeah, I dunno what the best thing here is. Perhaps the lineno of the
start of the loop? Certainly I would find it confusing to be stepping
through the pre-header and have the debugger bounce randomly through
statements within the loop. It might work out just as well to not give
any line number info for them. You'd have to see what actually happens
when you debug such loops.
> 2. new code created by loop peeling (to align loop-bound or
> memory-accesses) including new control code, new loops body, and setup code
> before each loop to calculate number of iterations and such. The stmts in
> the new peel-loops can get the location info of the original stmts they are
> a duplicate of. The rest, maybe best left without location info.
A peel, however, is easy and the obvious thing should be done.
> Shall we prepare a patch for these cases too (for 4.0)?
Please.
> * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
> EXPR_LOCUS from orig_cond to the new cond_stmt.
> (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
> the new vec_stmt.
Ok.
r~