On Thu, May 10, 2018 at 10:33:39AM +0200, Marc Glisse wrote: > (not a review) > > On Thu, 10 May 2018, Hans-Peter Nilsson wrote: > > >Replacing a division feeding a division helps only when the > >second division is the only user, and "fusing" the divisions is > > Well, that's not quite true. > int x, y; > void f(int n){ > int c = 3 << 20; > x = n / c; > y = x / c; > }
[ fixed the typo ] > Here we can optimize the last division to y = 0. After your patch, we > likely need VRP to do that simplification. There are probably more > complicated transformations this disables. Without the replacement we have two dependent divisions; with the replacement we have two independent divisions, and that is much faster on some (many?) systems (that can do two fixed-point divisions in parallel), even if things do not simplify further. Segher