> 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