This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Question on register renaming in rtl loop unroll pass
- From: Eric Botcazou <ebotcazou at adacore dot com>
- To: "Bin.Cheng" <amker dot cheng at gmail dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Fri, 28 Jun 2013 12:10:25 +0200
- Subject: Re: Question on register renaming in rtl loop unroll pass
- References: <CAHFci2-8WTRo4rGER6QHEoh_8tL0AXmpZqs4Sovy6OgeG2mm5g at mail dot gmail dot com>
> Hi, I have a question about register renaming in rtl loop unroll.
> For an example loop:
> .L1:
> [r162] <- x
> r162 <- r162 + 4
> ...
> b .L1
>
> After unrolling:
> .L1:
> [r162] <- x
> r197 <- r162 + 4
> r162 <- r197
> ...
> [r162] <- y
> r162 <- r197 + 4
> ...
> b .L1
> Why not:
> .L1:
> [r162] <- x
> r162 <- r162 + 4
> ...
> [r162] <- y
> r162 <- r162 + 4
> ...
> b .L1
>
> Thus less copy instructions and can take advantage of auto-increment.
> Any ideas?
The general principle is to avoid pseudo-registers with long live ranges
because this unnecessarily contraints the RTL optimizers.
--
Eric Botcazou